On Tue, Jun 1, 2010 at 18:00, Daniele Segato <daniele.bilug@xxxxxxxxx> wrote: > On Mon, May 31, 2010 at 10:04 PM, Andrew Sayers > <andrew-git@xxxxxxxxxxxxxxx> wrote: >> On 25/05/10 08:42, Michael J Gruber wrote: >>> >>> Feel free to contribute to the Git Wiki maybe at >>> >>> https://git.wiki.kernel.org/index.php/GitDocumentation >>> >>> in the "User contributed Documentation" section. >>> >>> Michael >>> >> >> Thanks for the hint - this turned into rather more than just uploading a >> PDF, and I've now finished a complete write-up here: >> >> https://git.wiki.kernel.org/index.php/SvnMigration > > > That's a great job! > > I want to point out some difficulties I encountered switching from > Subversion to Git-SVN. > I'd like to discuss them here before, eventually, contributing them to > that page. > > > = Empty directories = > Git do not track directories, it tracks content. That means you'll not > get/commit empty directory in your > working tree. > Sometimes empty directory may be needed by some fancy script or > external software you use with your > project (example, ANT). > > Developers should be aware of this: if they really need to create an > empty directory they can both > create it through subversion both create a "dummy" file in the > directory and commit it, if that's an option. > > > = Subversion ignore = > You can't control subversion ignores from git-svn. And git-svn do not > automatically synchronize with the > subversion ignores. The team should be aware of these to avoid issues. > > > = Local patch = > Most subversion user keeps some modified files in their local checkout > never committing it remotely. > This may be handy for some situation where you want to enable some > debug-specific feature or whatever you need. > With Git, if the file is remotely tracked (with Subversion you'll say > "already committed") you can't keep a file like that: > it will prevent you from "pushing" files to the remote repository or > checking out other local/remote branches. > You'll had to "stash" your patch and re-apply it later. AFAIK you're not obliged to have a clean working tree to push. If you want to keep patches on a branch you push regularly, creating a new branch and committing on it is more appropriate, keeping the patches as stash is not very handy. Personally I only use stash when I'm on the middle of something and I have to checkout another branch to check something. > > = local/remote branches = > Git-svn branches "track" the remote branches by adding a string in > each commit you "git svn dcommit" on > subversion repository. You can have many local branches tracking the > same remote subversion branch. > To start to track a new remote branch you have to "git checkout -b > localBranchName remoteBranchName", > which is not very user friendly :) > > You also can't create new Subversion branches or tags with git-svn, > you'll had to use subversion directly for that. > > > > Feel free to correct me or better describe those issue with a > better/more friendly english. > Feel also free to add to this list. > > > Regards, > Daniele Segato > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Sylvain -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html