On a slightly different topic, here's the only branching edge case I know of that will affect you. I agree with Jonathan that you should focus on the standard layout for now, but I think it's worth having the trickier cases in your head when you're planning things out. Imagine a team does this: # Slight misunderstanding of the standard layout at first: mkdir trunk/project1 trunk/project2 svn add trunk svn ci -m "Initial revsion" # r1 # Time passes, commits are made, people get smarter. # In revision 1000, the team decides to put the structure right: svn rm trunk svn ci -m "Removed incorrect directory name" # r1000 mkdir trunk touch trunk/MOVED_TO_PROJECT_TRUNK svn ci -m "Added signpost file for future reference" # r1001 mkdir project1 project2 svn cp -r 999 trunk/project1 project1/trunk svn cp -r 999 trunk/project2 project2/trunk svn ci -m "Recreated projects with correct directory names" # r1002 This would be represented in SBL something like: In r1, create branch "trunk/project1" In r1, create branch "trunk/project2" # We would prefer just to deactivate these... In r1000, deactivate "trunk/project1" In r1000, deactivate "trunk/project2" # ... but we have to delete them, # because git doesn't support recursive branch names: In r1001, delete branch "trunk/project1" In r1001, delete branch "trunk/project2" In r1001, create branch "trunk" # We deleted the branches, so how do we get the commit to fork from? In r1002, create branch "project1/trunk" from "trunk/project1" r999 In r1002, create branch "project2/trunk" from "trunk/project2" r999 If you look in your ".git/refs/heads/" directory, you'll see git branches are stored as files on disk. So if you have a branch "trunk/project1", you can't create a branch called "trunk" unless you delete the directory called "trunk" first. This unfortunate limitation of an otherwise neat solution means you can't reliably use git branches when retrieving older revisions. Other people will be able to tell you if there's any interest in removing this limitation, but even if there is, users will occasionally change their mind after asking for a branch to be deleted, and be surprised if SVN lets them but git doesn't. One solution you could look at would be storing dead branches in a JSON file somewhere. If you go down that route, remember that `git gc` will try to garbage collect the commits once the branches have been dead for long enough. - Andrew -- 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