[PATH] cg-Xlib: Fix problem with cg-update and deleted files
- From
Jonas Fonseca <fonseca@diku.dk>
- Date
- May 30, 2005, 16:39 UTC
- Message-ID
- <20050530163957.GC28681@diku.dk>
- In-Reply-To
- <1117466600.7072.188.camel@pegasus>
Marcel Holtmann <marcel@holtmann.org> wrote Mon, May 30, 2005:
> with the latest cg-update and pulling the linux-2.6 repository I saw > problems with deleted files:
Update tree_timewarp()s git-diff-tree logic to handle the diff-format header and file both being NUL separated.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk> ---
I've only tested it in a small test script ...
diff --git a/cg-Xlib b/cg-Xlib --- a/cg-Xlib +++ b/cg-Xlib @@ -73,10 +73,15 @@ tree_timewarp () { echo "$branch" > $_git/HEAD # Kill gone files - git-diff-tree -z -r $base $branch | egrep -z '^:([^ ][^ ]* ){4}D' | xargs -0 bash -c ' + git-diff-tree -r $base $branch | xargs -0 bash -c ' while [ "$1" ]; do - rm -- "$(echo "$1" | cut -f 2)" - shift + header="$1"; shift + file="$1"; shift + + # match ":100755 000000 14d43b1abf... 000000000... D" + if echo "$header" | egrep "^:([^ ][^ ]* ){4}D" >/dev/null; then + rm -- "$file" + fi done ' padding git-checkout-cache -f -a
-- Jonas Fonseca