git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Help understanding git checkout behavior
@ 2012-06-11 16:52 Cláudio Lourenço
  2012-06-11 17:07 ` Konstantin Khomoutov
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Cláudio Lourenço @ 2012-06-11 16:52 UTC (permalink / raw)
  To: git; +Cc: Renato Neves

Hello,

We are master students at University of Minho in Portugal and we are
currently working on a project suggested by CSAIL (MIT), called
"Understanding Git with Alloy". The project consists in modeling git
using alloy and then check for some properties that git does (not)
guarantee.

The project was going pretty fine, till we start modeling the checkout
operation. We are with some problems finding useful information about
the properties that have to be satisfied when the "git checkout" is
performed. We have concluded that if everything that is on index is
commited then we have no problems making checkout.
The problem is when we have something on index that is not updated
with the last commit. We cannot find a general property that says when
checkout can be performed. We have even found some files that are
lost, like in this case:

smooke  teste $ git init
Initialized empty Git repository in /home/smooke/Dropbox/teste/.git/
smooke  teste $ touch f
smooke  teste $ echo a > f
smooke  teste $ git add f
smooke  teste $ git commit -m 'first commit'
[master (root-commit) dab04b9] first commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 f
smooke  teste $ git branch b
smooke  teste $ touch something
smooke  teste $ echo b > something
smooke  teste $ git add something
smooke  teste $ git commit -m 'something added'
[master 9f2b8ad] something added
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 something
smooke  teste $ git rm something
rm 'something'
smooke  teste $ mkdir something
smooke  teste $ cd something/
smooke  something $ touch f1
smooke  something $ echo c > f1
smooke  something $ cd ..
smooke  teste $ git add something/f1
smooke  teste $ git checkout b
Switched to branch 'b'
smooke  teste $ ls
f
smooke  teste $ git checkout master
Switched to branch 'master'
smooke  teste $ ls
f  something
smooke  teste $ cat something
b

We are not sure if this behavior has an explanation of if it is just a bug.

We are hoping that you could clarify us about this operation or
recommend us some place where we can find some useful information
about this...

Thank you in advance,
Best regards,

Cláudio and Renato

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-06-11 22:45 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-11 16:52 Help understanding git checkout behavior Cláudio Lourenço
2012-06-11 17:07 ` Konstantin Khomoutov
2012-06-11 18:21 ` konglu
2012-06-11 18:34   ` Leila
2012-06-11 18:55     ` Jeff King
2012-06-11 18:56     ` Junio C Hamano
2012-06-11 20:48       ` Cláudio Lourenço
2012-06-11 21:04         ` Junio C Hamano
2012-06-11 21:34           ` Junio C Hamano
2012-06-11 21:47             ` Jeff King
2012-06-11 21:58               ` Jeff King
2012-06-11 22:45               ` Junio C Hamano
2012-06-11 18:52 ` Vincent van Ravesteijn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).