Local cg-pull fails
- From
- Russell King <rmk@arm.linux.org.uk>
- Date
- Jul 14, 2005, 10:12 UTC
- Message-ID
- <20050714111224.B31383@flint.arm.linux.org.uk>
I think I posted about this before, but I can't find it in my git mailbox...
rmk@dyn-67:[linux-2.6-arm] $ cg-update origin l `../linux-2.6/.git/refs/heads/master' -> `.git/refs/heads/origin' cp: cannot create link `.git/objects/00/ae0c9f3bc24856e7c9fcdf690466f1bbe0a4df': File exists cp: cannot create link `.git/objects/01/5bd2cf869f70ec708558f1d37980a8b4968604': File exists cp: cannot create link `.git/objects/02/c7e335d3ef3998dfb49673654152fb10124d2f': File exists
Consider this flow of changes (which represents how I work):
Linus' kernel.org tree --> Local pristine tree
^ ^ | |
| | v v
| | working tree 1 working tree 2
| | | |
| `----------------' |
`---------------------------------'Changes are made in working tree 1, and made available to Linus. Linus merges them into his tree. I pull them into the pristine tree. Assume other changes occurred. in Linus' tree.
The pristine tree is obviously a superset of the working tree.
What happens when I pull those changes back into working tree 1, given that cogito uses "cp -va -ul".
The pristine tree now contains the GIT objects which I created in tree 1. For whatever reason I don't understand, they are dated after the same objects in tree 1. Therefore, because of `-u', cp will want to update them - by replacing the object with a link. It refuses.
Last time this was discussed, someone suggested -f, which solved the problem. Can we please modify the cg-pull script to use -f ?
Secondly, can I suggest that cogito developers consider the above usage scenario and construct a regression test for it to ensure that future breakages of this nature are caught. For me, cogito has been extremely fragile, and I don't think the above usage is unreasonable.
-- Russell King