
AMDG On 02/11/2012 08:04 AM, Julian Gonggrijp wrote:
Julien Nitard wrote:
No, there is a fundamental difference between svn and git. Let me elaborate.
In svn, by "branch" we just mean a branch of the file tree in the repository. The repository as a whole has a single history which is a linear sequence of revisions. So of course you can make a feature branch, but a commit to that feature branch is really also a commit to all other branches, the trunk and all tags -- and vice versa.
This is just wrong. A commit (or revert) to a branch is a commit to that branch only. And don't tell me that the shared version number is a problem.
Of course I may be wrong. Please help me to clarify: if I checkout branch A (only) and commit a change to it and branch B is not affected along the way, is that because (1) I didn't edit branch B, so naturally it wouldn't be affected, or (2) svn somehow treats edits on branch A as events that are isolated from edits on branch B?
(1). The thing is, in svn, we can operate on any subtree, and ignore the rest of the repository. So, for example, given the following situation: revision 1: branch A revision 2: branch B revision 3: branch A revision 4: branch B If we want to undo the most recent change to branch A, the command is svn merge -r HEAD:2 branches/A Revision 4 doesn't affect branch A, so it's left alone.
The latter would mean that svn could, for example, prevent me from doing the following: checkout the entire /branches directory, make edits on both /branches/A and /brances/B, then commit all changes together in one revision.
svn allows this, although I've never seen anyone actually do it. In Christ, Steven Watanabe