Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Oct 20, 2006, 18:35 UTC
- Message-ID
- <200610202035.26227.jnareb@gmail.com>
- In-Reply-To
- <20061020181210.GA29843@artax.karlin.mff.cuni.cz>
Jan Hudec wrote:
Show 21 quoted lines
> On Fri, Oct 20, 2006 at 06:21:34PM +0200, Jakub Narebski wrote: > > Aaron Bentley wrote: > > > > > === added directory // file-id:TREE_ROOT > > > > Gaaah, so rename detection in bzr is done using file-ids? > > Linus will tell you the inherent problems with that "solution". > > Ok, I tried to read > http://permalink.gmane.org/gmane.comp.version-control.git/217 > > It's all nice and well, but my question is whether the below cases work > in git. Yes, they are particular cases, but they are particularly > important. If they don't, I'd rather have file-id scheme, that is > limited to just them, but handles them, than something with big plans, > but nothing working. > > Let's consider following scenario: > > (where A$ means working in branch A, B$ means working in branch B and > VCT stands for version control tool of choice)
1077:jnareb@roke:/tmp/jnareb> mkdir tmp 1078:jnareb@roke:/tmp/jnareb> cd tmp/ 1079:jnareb@roke:/tmp/jnareb/tmp> git init-db defaulting to local storage area
> A$ echo Hello Warld! > hello.txt
1081:jnareb@roke:/tmp/jnareb/tmp> echo 'Hello Warld!' > hello.txt
> A$ VCT add hello.txt
1082:jnareb@roke:/tmp/jnareb/tmp> git add hello.txt
> A$ VCT commit -m "Created greeting"
1083:jnareb@roke:/tmp/jnareb/tmp> git commit -a -m "Created greeting"
(we use here still default branch 'master'. Let us change it to A) 1084:jnareb@roke:/tmp/jnareb/tmp> git branch A 1088:jnareb@roke:/tmp/jnareb/tmp> git checkout A
> $ VCT branch A B
1085:jnareb@roke:/tmp/jnareb/tmp> git branch B A (create branch B based on A)
> A$ VCT mkdir data
1089:jnareb@roke:/tmp/jnareb/tmp> mkdir data
> A$ VCT mv hello.txt data/
1090:jnareb@roke:/tmp/jnareb/tmp> git mv hello.txt data/
> A$ VCT commit -m "Moved hello.txt to data dir"
1092:jnareb@roke:/tmp/jnareb/tmp> git commit -a -m "Moved hello.txt to data dir"
> B$ ed hello.txt > ? 1s/Warld/World/ > ? wq
1094:jnareb@roke:/tmp/jnareb/tmp> ed hello.txt 13 1s/Warld/World/ wq 13
> B$ VCT commit -m "Fixed typo in greeting"
1096:jnareb@roke:/tmp/jnareb/tmp> git commit -a -m "Fixed typo in greeting"
> A$ VCT merge B
1097:jnareb@roke:/tmp/jnareb/tmp> git checkout A 1098:jnareb@roke:/tmp/jnareb/tmp> git pull . B Trying really trivial in-index merge... fatal: Merge requires file-level merging Nope. Merging HEAD with 9de7290d385ec2b0c2ade9b888f6c3a6633ac926 Merging: 5f0eb04467538f0f1414af85ec6481150107c0b2 Moved hello.txt to data dir 9de7290d385ec2b0c2ade9b888f6c3a6633ac926 Fixed typo in greeting found 1 common ancestor(s): f49a520e40143cb9d84b00e9728c5742897c0a22 Created greeting
Merge made by recursive. data/hello.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
> At this point, I expect the tree to look like this: > A$ ls -R
1099:jnareb@roke:/tmp/jnareb/tmp> ls -R .: data
./data: hello.txt
> A$ cat data/hello.txt
1100:jnareb@roke:/tmp/jnareb/tmp> cat data/hello.txt Hello World!
> A$ VCT mv data greetings
1102:jnareb@roke:/tmp/jnareb/tmp> git mv data greetings
> A$ VCT commit -m "Renamed the data directory to greetings"
1105:jnareb@roke:/tmp/jnareb/tmp> git commit -a -m "Renamed the data directory to greetings"
> B$ echo "Goodbye World!" > data/goodbye.txt
1106:jnareb@roke:/tmp/jnareb/tmp> git checkout B 1109:jnareb@roke:/tmp/jnareb/tmp> echo 'Goodbye World!' > data/goodbye.txt bash: data/goodbye.txt: There is no such file or directory 1110:jnareb@roke:/tmp/jnareb/tmp> ls -R .: hello.txt
You need to revise your example.
-- Jakub Narebski Poland