On 9/28/10 3:44 PM, Tuomo wrote: > I have seen lots of comparisons between source control tools, > but have not found a comparison that would explain the fundamental differences > and similarities in a way that would really let me choose. > So I decided to try a new approach: if one tries to transfer the full history > of an application or a larger product/project, which features can I rely on > finding in any decently recent tool? > > Let's start from Git vs. Mercurial: is it possible to move the whole history > of an application (with or without submodules) from Git to Mercurial? > From Mercurial to Git? fast-import/export (man git-fast-export/import) seems to be the future. Git provides excellent support for it and other SCMs are adopting it as well. And then there are custom written conversion tools, just take a look at [1] to see which ones are available. (shameless plug: just this weekend I started collecting the various fast import/export tools and made a webpage about it: http://caurea.org/fast-export-import/. It's far from complete though. And if you know any tools that perform better than those I've listed, I'd be glade to update the page). > If it is not always possible, what is the feature that might completely > prevent the whole attempt? If partial transfer is possible, what information > might be missing in the result? Not all SCMs have the same features. Subversion for example doesn't have real branches, tags nor merges (in the same sense that Git does). And even in distributed version control systems there can be differences. Git history can't be mapped 1:1 to Mercurial (octopus merges come to mind). Some of these things can be reasonably emulated, some can't and you loose that information. tom [1] https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools#Interaction_with_other_Revision_Control_Systems -- 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