Re: SVN -> Git *but* with special changes
- From
- Stephen Bash <bash@genarts.com>
- Date
- Sep 28, 2011, 17:10 UTC
- Message-ID
- <16808473.33899.1317229852319.JavaMail.root@mail.hq.genarts.com>
- In-Reply-To
- <1317227849979-6840904.post@n2.nabble.com>
----- Original Message -----
Show 11 quoted lines
> From: "Abscissa" <bus_nabble_git@semitwist.com> > To: git@vger.kernel.org > Sent: Wednesday, September 28, 2011 12:37:29 PM > Subject: SVN -> Git *but* with special changes > > I have a couple big projects in SVN that I'd like to convert to Git. > Being in SVN, they've operated under a couple assumptions that are > not true under Git. These assumptions are: > > 1. Directories can exist even if there's nothing in them (just like > any filesystem).
What requires the empty directories to exist? The build system? Can you just let them go away in Git and fix it downstream in the user's working copy?
> 2. Keeping binary files in version control isn't a big deal because > the whole repo doesn't get copied to everyone's system or use up > people's GitHub storage space.
I'd eliminate these on the SVN side before converting to Git. If you have svnadmin access to the SVN repo svnadmin dump, svndumpfilter, svnadmin load is a pretty easy process.
Show 8 quoted lines
> The SVN repos have been relying on those, but both are false under > Git, so I need to do a "modified" conversion, rather than just a > straight one. > > So, how can I convert an SVN repo to Git, and have the conversion add > dummy files to empty directories and exclude specific files? (Also, > there are tags and branches to be converted too, in the SVN-standard > "tags" and "branches" directories.)
To do the actual conversion, svn-fe and git fast-import are by far the quickest way to get the data into Git. Filtering into tags and branches is a bit of a trick though [1]. git-svn has (IMO) a good branching UI, but can be very slow for large repositories.
[1] http://thread.gmane.org/gmane.comp.version-control.git/158940/focus=159151 : note this thread is almost a year out of date now, and even I know much better ways to go about this now -- but the scripts are not written.
HTH, Stephen