Michael Sokolov skrev:
This kind of information (merge tracking) has been in svn since 1.5 (see http://subversion.apache.org/docs/release-notes/1.5.html#merge-tracking). I believe this perception of SVN dates from its early days, when merging was indeed much more difficult: you had to keep track of all the merges you had done, to avoid doing them again, and it was a huge mess. That has pretty much been sorted out now.
Ok, so the necessary tracking of data seems to be in both. One might be better that the other in some aspects and visa versa. I stand corrected.

Now it seems to me that the main advantage about git/github is that it doesn't create a strict boundary between committers and non-committers. As a committer, the two systems are basically the same up to differences in UI, convenience of tools, etc. But for a non-committer, with SVN the situation is irritating if you submit patches that you continue to use, but are not accepted (or not in a timely way) into the main repository. In such a case, you either have to abandon the use of source control (OUCH!), or you have to fork the entire project and maintain your own repo, with no tools for integrating with the main repo.

My understanding is that with git, you can maintain your own repo, and you have tools for taking changes from upstream repos, and also that the "pull request" mechanism may be more convenient than submitting patches. So this sounds, on the whole, much more attractive for outside contributors. I have to admit I've only fiddled with this a bit, so this is mostly based on what I've read and heard: please "tell me that I am stupid"!

-Mike

With change/merge-tracking in both system, the important thing must be that you do not have to throw the tracked information away before in you attempt to get your changes into the main repository. You certainly throw this information away when you create a dumb patch-file. Guess that we could make it work, if just "outsiders" where allowed to make branches in Apaches SVN - we are not :-) So I guess that is the main bennefit of git. It allows for forks from the main repository to live remote from the main repository - that is, I would be able to make a fork from the Apache git-repository (github or not), a fork that "lives" entirely on my system of servers. And when I want to forward changes into Apache it can go from my forked repository into the main repository (through upstreaming) without having to cross a border where the nice change/merge-tracking is lost. Still pretty sure that the stuff for this is all in git, but depeding on whether or not Apache would need access to my local repository (containing my fork) in order for the upstream from my repository to the Apache repository to be possible, when the actual action of accepting the upstream has to be on the Apache side, I dont know. With GitHub my repository would live the same place as Apaches and then certainly it would be possible. But why the discussion? Why not just GitHub?!

Regards, Per Steffensen

Reply via email to