Jeff Garzik <jgarzik@pobox.com> writes: > Junio C Hamano wrote: >> Jeff Garzik <jgarzik@pobox.com> writes: >>> 2) What is the easiest way to obtain a list of changes present in >>> repository B, that are not present in repository A? I used to use >>> git-changes-script [hacked cg-log script] for this: I haven't really *read* that script, but I think it is trying to make a list of commits from both repositories and trying to find the set that are in one side and not in the other using diff (a real shell programer probably would have used "comm" for this kind of task, not "diff"), then doing a handcrafted git-log on each of them. Attached is my quick hack, based on your original question, without really trying to understand what the script is doing, so I cannot claim it is a rewrite nor even attempting to be compatible. Please take a look at it and tell me if this is any close to what you need. I have a suspition that this might be better done as a natural extension of git-log, though. ------------ #!/bin/sh # # Copyright (c) 2005 Junio C Hamano # . git-sh-setup || die "Not a git archive" usage () { echo >&2 "$0 ( -L | -R ) <dir> [<ref>] [<ref>] -L shows changes in local not in remote. -R shows changes in remote not in local. <dir> names the remote repository. If given no refs, local and remote HEADs are compared. If given one ref, local HEAD and named remote ref are compared. If given two refs, the first names a local ref, and the second names remote ref to be compared. " exit 1 } case "$1" in -L | -R) ;; *) usage ;; esac other="$2" ( unset GIT_DIR GIT_OBJECT_DIRECTORY cd "$other" && . git-sh-setup || die "$other is not a valid git repository." ) local=${3:-HEAD} remote=${4:-HEAD} # Basic validation. local=$(git-rev-parse --verify "$local^0" 2>/dev/null) || die "local ref $local is not valid." remote=$(GIT_DIR="$other" git-rev-parse --verify "$remote^0" 2>/dev/null) || die "remote ref $remote is not valid." case "$1" in -L) list_args="$local ^$remote" ;; -R) list_args="^$local $remote" ;; esac GAOD="$GIT_ALTERNATE_OBJECT_DIRECTORIES" GIT_ALTERNATE_OBJECT_DIRECTORIES="$other/.git/objects:$GAOD" \ git-rev-list --pretty $list_args | LESS=-S ${PAGER:-less} - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Sun Oct 02 18:48:24 2005
This archive was generated by hypermail 2.1.8 : 2005-10-02 18:48:27 EST