subversion books ?

Bill Hernandez ms at mac-specialist.com
Tue Mar 31 12:21:26 PDT 2009


On Mar 31, 2009, at 6:32 AM, Ryan Schmidt wrote:

> On Mar 30, 2009, at 19:26, Bill Hernandez wrote:
>
>> After trying to get subversion to work remotely via apache webdav  
>> and having dismal luck and many questions over the weekend, I went  
>> down to the local nerdbooks.com and bought three books this  
>> afternoon. They all had different aspects that I liked as I browsed  
>> through them, so instead of buying one as planned, I came home with  
>> three. But that's OK I'll read one and use the other two for  
>> reference.
>>
>> They (nerdbooks.com) do mostly all web based sales, but luckily  
>> they have a warehouse in Richardson, TX  (Dallas area).
>>
>> I don't know how their prices compare, but they do technical books  
>> only, and they have the most incredible selection.
>>
>> I posted the book info here in case this is helpful to others
>>
>> The Pragmatic Programmers
>> Pragmatic Version Control using Subversion
>> ISBN : 0-9776166-5-7
>> Price : $34.95
>> Discount Price : $20.97
>>
>> Bruce Perens Open Source Series
>> Subversion Version Control
>> ISBN : 978-0-13-185518-2
>> Price : $44.99
>> Discount Price : $26.54
>>
>> O'Reilly
>> Version Control with Subversion
>> ISBN : 978-0-596-51033-6
>> Price : $39.99
>> Discount Price : $25.99
>
> I've seen the Pragmatic book recommended many times on the  
> Subversion Users list. And the O'Reilly book is of course the one  
> that is written by the authors of Subversion and is available free  
> online at http://svnbook.org/
>
> You may also want to pass your recommendations on to the Subversion  
> Users list.


Ryan,

I was a little concerned about mentioning nerdbooks.com for fear that  
it would get me in trouble. I understand that promoting any business  
on a forum is not good thing, because it can get out of hand and after  
a while people will try to push all kinds of businesses, but I've been  
buying from nerdbooks for a couple of years, they have always been  
great to work with, their service and pricing has always been great.

I thought that by listing the prices, any members of the forum who saw  
the info might benefit from their great prices.

Last night I read the first 43 pages of 'Pragmatic Version Control  
using Subversion, and the book is awesome. So far it has explained  
part of the BIG picture very well. I can't wait to finish it...

The first 43 pages have already explained some of my basic questions,  
some of which I have listed below. With any luck this book, and the  
other two should help to answer a lot of my questions below...

For those of us who are not computer science majors all this stuff is  
mostly foreign (buzzwords). When I tried getting involved with svn I  
found mostly tutorials and information on how to setup a basic local  
svn repository and use the commands, but nothing that really explained  
the big picture, such as :

( 1 ) what components are required (clients, daemons, or servers, gui  
interface, directories, data, etc) :
        ( a ) on the local machines ?
        ( b ) on the server ?
        ( c ) where do they, or where should they each get installed  
(preferred locations) ?
        ( d ) what permissions do they need to in order to protect the  
data from intrusion, and
        ( e ) still be accessible to the users, and
        ( f ) also accessible to the daemons/servers/clients ?
        ( g ) which method is best suited to remote repositories :
               ( 1 ) WebDav, or
               ( 2 ) something else ('svnserve' which I read about  
yesterday as an alternative to WebDav) ?
        ( h ) how relatively secure can an average person make this  
stuff without knowing about unix jails, etc ?
        ( i ) how risky is doing this without being a unix security  
master guru ?

( 2 ) what's the difference between the :
        ( a ) trunk,
        ( b ) branches,
        ( c ) tags, etc. and
        ( d ) when do you use, or transition from one to another ?
        ( e ) what do they really mean ?
        ( f ) some of the articles mentioned a trunk, others never did ?
        ( g ) some articles mentioned import, add, create, and other  
commands, but the overall strategy of how to design a successful  
environment was not something I found ?
        ( i ) after trying to create a remote repository using a gui  
client, and later
              using bash $ 'svnadmin create https://my-domain/path/2/my-repository'
              over the weekend, I finally found one article mentioning  
that svnadmin
              cannot be used to create a remote repository, from which  
I surmised,
              that you have to issue that command on the remote  
server, either
              physically or perhaps via ssh.

( 3 ) what about checkout, merging, sandbox, workspace. I assume  
(workspace == sandbox), etc.

         ( a ) must checkout location be the workspace (one workspace) ?
                ( 1 ) i.e. one physical folder where you check  
everything in/out of,
                ( 2 ) so that the svn software (daemon/server/client/ 
etc) can keep track
                       of the changes without undue overhead, or
        ( b )  in relation to the workspace, can you :
                ( 1 ) keep your existing directory hierarchy within  
the htdocs directory, or
                ( 2 ) use the drive hierarchy itself, and just use  
them to make changes, or
                ( 3 ) will the svn software have a harder time  
tracking changes, possibly
                       get confused, or not work at all ?

         Assuming that you want your entire htdocs directory to be  
under version control, I think having a duplicate in the sandbox would  
create more things to keep track of.  I don't see this as what they  
(the svn creators) intended...

         I guess the biggie is how do you transition from just having  
a massive amount of files/directories on a drive to a working svn  
model of all that data, and then do it remotely so that multiple  
machines/users can benefit. In the case of htdocs, those dirs have to  
reside in a specific place within the grasp of apache, so you don't  
have to get involved creating/changing symlinks in the workspace, or  
aliases in httpd.conf.

         ...and not everything in the repository can be aliased or  
symlinked back to htdocs anyway (stuff that's not meant for the web),  
so you can't have one central alias, you would have to create/maintain  
many. I am sure this is not the way it was intended.

         some documents I found implied that you should make a  
repository for each project, which seems to me, would quickly get out  
of hand. I would think that it would be better to have one huge  
repository for all your projects, sub-projects, etc., which would  
physically translate into some, not all, directories on your home  
directory, root directory, web directory. etc. I would envision the  
htdocs directory to be under subversion, but split into specific  
directories (projects), such as libraries, documents, etc.

I think I have to think about the previous paragraph some more...

         From a strategic point of view, there are a boatload of  
questions, for which I have no answers, issues that need to be  
considered in order to get this going, or at least get it going  
successfully. I can see two months down the road starting over again  
because the initial setup was not established correctly and is either  
seriously flawed, too cumbersome, has weaknesses, or creates more  
overhead and user workload.

I know I keep going back to htdocs, but...

( 4 ) when you have something like the htdocs folder containing  
thousands of files, :
         ( a ) do you :
                 ( 1 ) create duplicates in the workspace and
                 ( 2 ) import them into the repository, or
         ( b ) do you :
                 ( 1 ) import them into the repository, then
                 ( 2 ) check them out to the workspace, or
         ( c ) better yet, :
                 ( 1 ) import them, and
                 ( 2 ) leave them where they were, such as /somepath/ 
htdocs/projects/whatever_dir/
                         and work on them in place (their original  
location) ?

( 5 ) how do you transition the thousands of folders, files, etc from  
a myriad of projects on your computer to svn ?

( 6 ) what method is most advantageous/secure for a remote repository  
model that can be accessed by a couple of workstations (from home),  
powerbook (from starbucks), etc ?

         In my particular case, I would be the only user, but a local  
repository would not work very well because I would like to use  
several machines/locations to access and keep the work synchronized. I  
read somewhere that you can sync multiple local repositories, but I  
don't want to do that, I want to have one central repository.

These are some of the questions I was trying to figure out answers  
for...

I even tried watching some video tutorials I found on the web, but  
great as the effort was on the part of those trying to help, all this  
cannot be covered in a few minutes, and not all of them had the same  
goals. The ones I viewed dealt with local repositories.

One last thing, as I was researching all this, it became clearly  
evident that as much software as I have written over the years, I have  
never had a good tracking system other than a simple database, for  
features, bugs, etc. So I decided that since I am taking this leap, it  
would be good to get 'trac' working with 'svn', and do it all in one  
shot rather than have to come back to 'trac' later on.

I looked at a lot of webpages dealing with getting 'trac' up and  
going, and came away thinking that svn will be child's play compared  
to getting 'trac' going. Hopefully I will be wrong.

I found a package that installs trac/subversion but I was hoping to  
get this all working using MacPorts.

http://www.jumpbox.com/

Thanks for all the suggestions, and help...

Bill Hernandez
Plano, Texas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-users/attachments/20090331/c1f58ab5/attachment.html>


More information about the macports-users mailing list