From: Stephen Bash Date: Wed, 28 Sep 2011 17:10:52 GMT Subject: Re: SVN -> Git *but* with special changes Message-ID: <16808473.33899.1317229852319.JavaMail.root@mail.hq.genarts.com> In-Reply-To: <1317227849979-6840904.post@n2.nabble.com> ----- Original Message ----- > From: "Abscissa" > 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. > 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