git-svn Rewrites Some Commits, but not All

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

I've been using git-svn for some time now, and I'm very happy with it.
There is one thing that I'm wondering about, however.

The way I understand it, when `git svn dcommit` is run, new commits
are created (A' is created from A adding SVN information), then the
current branch is moved to point to A'. Why don't we move any other
refs that were pointing to A over to A' ? What would be the point of
continuing to point to A? I'm interested in looking into coding this
change to git-svn, but I would like to hear some feedback first.

If you understand what I'm saying, feel free to stop now, otherwise, a
more verbose explanation follows:

Consider the following workflow:

Create a local branch tracking a SVN branch (I'll call it "master")
On that branch, git checkout -b topic;
Do some work, and git commit;
git checkout master; git merge topic;
git log --oneline --decorate --graph topic master
Note that topic and master point to the same commit (it was a fast-forward)
git svn dcommit;
git log --oneline --decorate --graph topic master

Now we see that topic and master now point to different commits. git
svn rewrote the master commits to add information about where those
commits went in SVN (their rev number, the url, etc.).

I'm proposing that both master and topic should now be pointing to A'.
This would allow numerous things to happen automatically that are
pleasing, for instance:  git branch -d topic; should succeed rather
than warn about unmerged changes.

Thanks for listening; I look forward to hearing your thoughts.

In Christ,
Aaron Laws
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]