Re: Git branches - confusing behavior

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

 



On 2008.05.11 15:33:21 +0300, Dima Kagan wrote:
> >> Basically I see that the same file I edited on the 'test_branch'
> >> branch appears to be modified on the 'master' branch as well. This
> >> behavior is unwanted, of course.
> >>
> >> Can someone please tell me, what am doing wrong? Or is this git's
> >> normal behavior?
> > 
> 
> I just realized that this behavior is even more confusing.  If I
> commit the file on 'test_branch' and only then 'git checkout master'
> the changes are not visible on 'master' until I merge. So why should
> 'master' be affected by uncommitted changes on some branch???

Uncommitted changes are not on any branch, they are in your working tree
and/or your index. And actually, SVN does the exact same thing.

# Create a SVN repository with trunk/ and branches/
# ----
$ mkdir svn
$ cd svn
$ svnadmin create repo
$ export REPO="file://$PWD/repo"
$ svn co $REPO wc
Checked out revision 0.
$ cd wc
$ svn mkdir trunk branches
A         trunk
A         branches
$ svn commit -m init
Adding         branches
Adding         trunk

Committed revision 1.
$ svn switch $REPO/trunk
D    trunk
D    branches
Updated to revision 1.


# Create some content in trunk
# ----
$ echo 123 > testfile
$ svn add testfile
A         testfile
$ svn commit -m test
Adding         testfile
Transmitting file data .
Committed revision 2.


# Create a branch
# ----
$ svn cp $REPO/trunk $REPO/branches/b1 -m branch

Committed revision 3.


# Produce some uncommitted changes on trunk
# ----
$ echo 456 > testfile
$ svn st
M      testfile
$ svn diff
Index: testfile
===================================================================
--- testfile    (revision 2)
+++ testfile    (working copy)
@@ -1 +1 @@
-123
+456


# Switch to the branch
# ----
$ svn switch $REPO/branches/b1
At revision 3.
$ svn st
M      testfile
$ svn diff
Index: testfile
===================================================================
--- testfile    (revision 3)
+++ testfile    (working copy)
@@ -1 +1 @@
-123
+456


The uncommitted changes survived the branch change and are still in the
working tree, in svn just like in git.

Björn
--
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]

  Powered by Linux