Subversion experience?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Subversion experience?

Don Allingham
We have an opportunity to switch from CVS to Subversion. SourceForge is
rolling out support for subversion. From the documentation, it looks
pretty good.

Has anyone had any experience with it? Is it worth the switch from CVS?

Don

--
Don Allingham
http://don.allingham.org

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Subversion experience?

Brian Matherly-4
YES!  Switch immediately!
 
 Go directly to Subversion. Do not pass go, do not collect $200.
 
 You won't regret it.
 
 ~Brian

----- Original Message ----
From: Don Allingham <[hidden email]>
To: [hidden email]
Sent: Thu 09 Feb 2006 10:31:05 PM CST
Subject: [Gramps-devel] Subversion experience?

We have an opportunity to switch from CVS to Subversion. SourceForge is
rolling out support for subversion. From the documentation, it looks
pretty good.

Has anyone had any experience with it? Is it worth the switch from CVS?

Don

--
Don Allingham
http://don.allingham.org





-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Subversion experience?

Richard Taylor-2
In reply to this post by Don Allingham
On Friday 10 Feb 2006 04:31, Don Allingham wrote:
> We have an opportunity to switch from CVS to Subversion. SourceForge is
> rolling out support for subversion. From the documentation, it looks
> pretty good.
>
> Has anyone had any experience with it? Is it worth the switch from CVS?

Don

I have some experience of running subversion. We migrated all of our work
systems from CVS to subversion about 2 years ago. Subversion is _much_
better. I would certainly support a move to subversion.

However, there is one thing about subversion that requires some thought before
migrating the existing code. Subversion does tagging and branching in a
completely different way to CVS. Unless you think through the layout of the
svn repository before the migration it can be a bit of a pain moving
everything around later to support the branching merging policy. This is the
thing that took the most time when we made the move.

If you intend to make the move, I can write more on the possible layout
options and how to do to the branching / tagging for our different releases.

BTE. I don't suppose sourceforge is going to allow access to the 'hook'
functions in subversion are they?

Regards

Richard

--
You can normally find me on Jabber as [hidden email]


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Subversion experience?

Don Allingham
On Fri, 2006-02-10 at 07:48 +0000, Richard Taylor wrote:

> However, there is one thing about subversion that requires some thought before
> migrating the existing code. Subversion does tagging and branching in a
> completely different way to CVS. Unless you think through the layout of the
> svn repository before the migration it can be a bit of a pain moving
> everything around later to support the branching merging policy. This is the
> thing that took the most time when we made the move.
>
> If you intend to make the move, I can write more on the possible layout
> options and how to do to the branching / tagging for our different releases.
>
> BTE. I don't suppose sourceforge is going to allow access to the 'hook'
> functions in subversion are they?
>
> Regards
>
> Richard
>
Richard,

If you could educate us more on the whole subversion migration issue, I
think we would all appreciate it.

More information can be found here: http://sourceforge.net/docs/E09/en/

It looks like thry are offering limited hook support.

Don

--
Don Allingham <[hidden email]>

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Subversion experience?

Richard Taylor-2
On Friday 10 Feb 2006 12:49, Don Allingham wrote:
>
> Richard,
>
> If you could educate us more on the whole subversion migration issue, I
> think we would all appreciate it.
>
> More information can be found here: http://sourceforge.net/docs/E09/en/
>
> It looks like thry are offering limited hook support.

The hook scripts they are providing are not of much use to us. But never mind.
The most useful hook script would be one that added a comment to a bugzilla
issue if the issue number was included in the commit message. This is great
for tracking development, but we don't have it now so we won't miss it.

The migration issue is one of structure. There are a number of differences
between CVS and SVN (http://svnbook.red-bean.com/nightly/en/svn.forcvs.html)
but the most significant one is probably the way that tags and branches are
handled. I will attempt to explain.

In CVS branches and tags are special attributes applied to a collection of
files and directories. The branches and tags are not apparent from the
directory structure, they are handled independently from the structure of the
repository. So roughly speaking our current CVS looks like this:

        gramps/* Branches: MAIN
                CVS Tags: R0_8_0,
                                PRE_KB_NAV,
                                snap20020717,
                                R0_8_0rc1,
                                HEAD  
        gramps2/* Branches: MAIN, vinit
                        CVS Tags: R1_1_99,
                                        R1_1_95,
                                        merged_gramps20_to_trunk,
                                        merged_gramps20_to_trunk_2,
                                        R2_0_8,
                                        R2_0_9,
                                        R2_0_2,
                                        R2_0_3,
                                        R2_0_0,
                                        R2_0_1,
                                        R2_0_6,
                                        R2_0_4,
                                        R2_0_5,
                                        HEAD
                        Branch point for: SOUR_REPO,
                                        TOOL_OPT,
                                        gramps20
        manual/* Branches: MAIN
                        CVS Tags: HEAD

Subversion does not have the concepts of branch and tag at all. It only has
copies. However, unlike cvs, copies know where they have been copied from.
Copies are also lazy in that they don't actually make a real copy, you can
think of them as symlinks that are copied only when a change is made. This
means that making a copy in subversion is very fast, much faster than
applying a tag in cvs.

To achieve the same effect as branches and tags you have to use a
filestructure convention. For gramps this would probably look like this:

        gramps/trunk/
                /branches/
                /releases/
        gramps2/trunk/ <-- this is the current HEAD development
                /branches/
                        1_1
                        2_0 <-- this is the current 2_0 branch
                /releases/1_1/1_1_95
                                 1_1_99
                          2_0/2_0_1
                                 2_0_2  <-- these are the release tags
                                 etc.
        manual/trunk/
                branches/
                releases/

Note that there is nothing special about the 'trunk'. All folders are
equiverlent in their functionality, subversion does not care what you call
them 'trunk'/'branches'/'releases' are just a convention. This also means
that it is possible to checkout a releases version e.g.
gramp2/releases/2_0/2_0_1 and change it! It is only a release tag because the
conventions say it is. So you have to have some rules that say noone should
every commit changes to the /releases/ directory.

You can merge changes between any directories.

Making a release or a branch is just a copy, for example, lets imagine that we
were ready to release the current HEAD (trunk) code as release-3.0.0.

        # first make a new branch for the 3.0 series releases
        svn copy http://.../gramps2/trunk http://.../gramp2/branches/3_0

        # now make the release
        svn mkdir http://.../gramps2/releases/3_0
        svn copy http://.../gramps2/branches/3_0 
http://.../gramps2/releases/3_0/3_0_0

Thanks it.

Now to fix a bug in the 3_0_0 and release 3_0_1.

        # get 3_0 branch
        svn checkout http://.../gramps2/branches/3_0

        # do magic

        # commit changes
        svn commit -m "magic done"

        # make new release
        svn copy http://.../gramps2/branches/3_0 
http://.../gramps2/releases/3_0/3_0_1

Merging changes into the trunk is a little more involved. (I have some notes
at work that I should be able to release).

I hope that I have not muddied the waters too much.

Richard


--
You can normally find me on Jabber as [hidden email]


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Subversion experience?

Alex Roitman
Before we decide to go with Subversion, should we also
look into e.g. GNU Arch? It also provides atomic commits,
similar ease with the directories, renaming, etc.

It is also distributed, so we won't be tied to any single
repository, which is a plus if SourceForge is down for a day
or two.

I tried learning it once, and it does make sense, although
I have no idea about performance issues and other dark
sides. Any opinions?

Alex

--
Alexander Roitman   http://www.gramps-project.org

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Subversion experience?

romjerome-2
Alex,

> Before we decide to go with Subversion, should we also
> look into e.g. GNU Arch? It also provides atomic commits,
> similar ease with the directories, renaming, etc.

There is a comparison between various version-control systems. It is split into
several categories and sub-categories under which the systems are checked.

http://better-scm.berlios.de/comparison/comparison.html
http://better-scm.berlios.de/comparison/


Jérôme





-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel