Subject: Re: [boost] [git] neglected aspects
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-02-11 12:04:52


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