From: Jeff Garzik <jgarzik@pobox.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: Updated git HOWTO for kernel hackers
Date: Thu, 23 Jun 2005 03:15:03 -0400 [thread overview]
Message-ID: <42BA6177.8060202@pobox.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0506221915280.11175@ppc970.osdl.org>
[-- Attachment #1: Type: text/plain, Size: 1427 bytes --]
Linus Torvalds wrote:
> How about this patch? Then you can say
>
> git-apply --stat --summary --apply --index /tmp/my.patch
>
> and it will not only apply the patch, but also give a diffstat and a
> summary or renames etc..
Quite nice.
>>I usually want just two things:
>>
>>1) browse the log
>>
>>2) list changes in local tree that are not in $remote_tree, a la
>> bk changes -L ../linux-2.6
>>
>>I agree that seeing the merge csets is useful, that is why [being
>>ignorant of 'git log'] I used git-changes-script.
>
>
> For (1) "bk log" is good.
Chuckle. What does one call a Freudian slip, in computer-land?
> For (2) you'll have to use your own script, or
> just have the remote tree as a branch in the same tree, in which case you
> can do
>
> git log remotebranch..mybranch
Very neat. That makes some things a bit easier, since I usually carry a
'vanilla' branch as .git/refs/heads/master, and do all my modifications
on other branches.
FWIW, git-changes-script (attached) facilitates #2 for me right now. I
use it just like BK's '-L' feature:
cd netdev-2.6
git checkout -f ieee80211
git-changes-script -L ../linux-2.6 | less
That will produce the same output as the feature you just taught me,
git log master..ieee80211
WARNING: You have previously called git-changes-script quite ugly (not
surprising), and this 'git log x..y' will probably replace it in my
usage, long term.
Jeff
[-- Attachment #2: git-changes-script --]
[-- Type: text/plain, Size: 2373 bytes --]
#!/bin/bash
#
# Make a log of changes in a GIT branch.
#
# This script was originally written by (c) Ross Vandegrift.
# Adapted to his scripts set by (c) Petr Baudis, 2005.
# Major optimizations by (c) Phillip Lougher.
# Rendered trivial by Linus Torvalds.
# Added -L|-R option by James Bottomley
#
# options:
# script [-L <dir> | -R <dir> |-r <from_sha1> [ -r <to_sha1] ] [<sha1>]
#
# With no options shows all the revisions from HEAD to the root
# -L shows all the changes in the local tree compared to the tree at <dir>
# -R shows all the changes in the remote tree at <dir> compared to the local
# -r shows all the changes in one commit or between two
tmpfile=/tmp/git_changes.$$
r1=
r2=
showcommit() {
commit="$1"
echo commit ${commit%:*};
git-cat-file commit $commit | \
while read key rest; do
case "$key" in
"author"|"committer")
date=(${rest#*> })
sec=${date[0]}; tz=${date[1]}
dtz=${tz/+/+ }; dtz=${dtz/-/- }
pdate="$(date -Rud "1970-01-01 UTC + $sec sec $dtz" 2>/dev/null)"
if [ "$pdate" ]; then
echo $key $rest | sed "s/>.*/> ${pdate/+0000/$tz}/"
else
echo $key $rest
fi
;;
"")
echo; cat
;;
*)
echo $key $rest
;;
esac
done
}
while true; do
case "$1" in
-R) shift;
diffsearch=+
remote="$1"
shift;;
-L) shift;
diffsearch=-
remote="$1"
shift;;
-r) shift;
if [ -z "$r1" ]; then
r1="$1"
else
r2="$1"
fi
shift;;
*) base="$1"
break;;
esac
done
if [ -n "$r1" ]; then
if [ -z "$r2" ]; then
showcommit $r1
exit 0
fi
diffsearch=+
remote=`pwd`;
tobase="$r2";
base="$r1"
fi
if [ -z "$base" ]; then
base=$(cat .git/HEAD) || exit 1
fi
git-rev-tree $base | sort -rn > ${tmpfile}.base
if [ -n "$remote" ]; then
[ -d $remote/.git ] || exit 1
if [ -z "$tobase" ]; then
tobase=$(cat $remote/.git/HEAD) || exit 1
fi
pushd $remote > /dev/null
git-rev-tree $tobase | sort -rn > ${tmpfile}.remote
diff -u ${tmpfile}.base ${tmpfile}.remote | grep "^${diffsearch}[^${diffsearch}]" | cut -c 1- > ${tmpfile}.diff
rm -f ${tmpfile}.base ${tmpfile}.remote
mv ${tmpfile}.diff ${tmpfile}.base
if [ $diffsearch = "-" ]; then
popd > /dev/null
fi
fi
[ -s "${tmpfile}.base" ] || exit 0
cat ${tmpfile}.base | while read time commit parents; do
showcommit $commit
echo -e "\n--------------------------"
done
rm -f ${tmpfile}.base
next prev parent reply other threads:[~2005-06-23 8:29 UTC|newest]
Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-22 22:24 Updated git HOWTO for kernel hackers Jeff Garzik
2005-06-22 22:40 ` Dave Jones
2005-06-22 22:47 ` Jeff Garzik
2005-06-22 22:52 ` Dave Jones
2005-06-23 0:14 ` Jeff Garzik
2005-06-25 3:33 ` Jeff Garzik
2005-06-25 17:29 ` Dave Jones
2005-06-22 23:09 ` Greg KH
2005-06-22 23:25 ` Linus Torvalds
2005-06-23 0:05 ` Jeff Garzik
2005-06-23 0:29 ` Linus Torvalds
2005-06-23 1:47 ` Jeff Garzik
2005-06-23 1:56 ` Linus Torvalds
2005-06-23 2:16 ` Jeff Garzik
2005-06-23 2:39 ` Linus Torvalds
2005-06-23 3:06 ` Jeff Garzik
2005-06-23 3:24 ` Linus Torvalds
2005-06-23 5:16 ` Jeff Garzik
2005-06-23 5:58 ` Linus Torvalds
2005-06-23 6:20 ` Greg KH
2005-06-23 6:51 ` Linus Torvalds
2005-06-23 7:11 ` Greg KH
2005-06-23 7:03 ` Jeff Garzik
2005-06-23 7:38 ` Petr Baudis
2005-06-23 8:18 ` Martin Langhoff
2005-06-23 8:30 ` Vojtech Pavlik
2005-06-23 14:31 ` Horst von Brand
2005-06-22 23:16 ` Linus Torvalds
2005-06-23 0:15 ` Jeff Garzik
2005-06-23 1:53 ` Linus Torvalds
2005-06-23 7:06 ` Jeff Garzik
2005-06-23 15:29 ` Linus Torvalds
2005-06-23 0:33 ` Linus Torvalds
2005-06-23 1:19 ` Christian Kujau
2005-06-23 1:45 ` Linus Torvalds
2005-06-24 0:42 ` Christian Kujau
2005-06-23 2:04 ` Jeff Garzik
2005-06-23 2:28 ` Linus Torvalds
2005-06-23 3:52 ` Adam Kropelin
2005-06-23 4:54 ` Linus Torvalds
2005-06-23 5:35 ` Jeff Garzik
2005-06-23 6:37 ` Linus Torvalds
2005-06-23 6:07 ` Miles Bader
2005-06-23 7:15 ` Jeff Garzik [this message]
2005-06-23 16:06 ` Linus Torvalds
2005-06-23 8:01 ` Anton Altaparmakov
2005-06-23 2:08 ` Kurt Wall
2005-06-23 4:23 ` Daniel Barkalow
2005-06-23 12:25 ` Dave Airlie
2005-06-23 23:56 ` Mercurial vs " Matt Mackall
2005-06-24 6:41 ` Petr Baudis
2005-06-24 12:38 ` Christopher Li
2005-06-28 15:00 ` Petr Baudis
2005-06-28 15:00 ` Petr Baudis
2005-06-28 15:10 ` Andrew Thompson
2005-06-28 15:10 ` Andrew Thompson
2005-06-28 15:35 ` Petr Baudis
2005-06-28 15:35 ` Petr Baudis
2005-06-28 21:54 ` Horst von Brand
2005-06-28 18:47 ` Christopher Li
2005-06-28 18:47 ` Christopher Li
2005-06-29 0:12 ` Kyle Moffett
2005-06-29 0:12 ` Kyle Moffett
2005-06-28 18:01 ` Matt Mackall
2005-06-28 18:01 ` Matt Mackall
2005-06-28 20:27 ` Kyle Moffett
2005-06-28 20:27 ` Kyle Moffett
2005-06-28 20:45 ` Sean
2005-06-28 22:14 ` Matt Mackall
2005-06-28 22:14 ` Matt Mackall
2005-06-28 22:23 ` Sean
2005-06-28 22:23 ` Sean
2005-06-28 22:47 ` Kyle Moffett
2005-06-28 22:47 ` Kyle Moffett
2005-06-28 22:49 ` Matt Mackall
2005-06-28 22:49 ` Matt Mackall
2005-06-28 22:59 ` Sean
2005-06-28 22:59 ` Sean
2005-06-28 23:25 ` Kyle Moffett
2005-06-28 23:25 ` Kyle Moffett
2005-06-28 23:37 ` Sean
2005-06-28 23:37 ` Sean
2005-06-29 0:08 ` Kyle Moffett
2005-06-29 0:08 ` Kyle Moffett
2005-06-29 0:25 ` Sean
2005-06-29 0:25 ` Sean
2005-06-29 3:53 ` Kyle Moffett
2005-06-29 3:53 ` Kyle Moffett
2005-06-29 10:27 ` Vojtech Pavlik
2005-06-28 23:29 ` Matt Mackall
2005-06-28 23:29 ` Matt Mackall
2005-06-29 6:32 ` Thomas Arendsen Hein
2005-06-24 13:06 ` Andrea Arcangeli
2005-06-24 13:39 ` Theodore Ts'o
2005-06-24 13:46 ` Paolo Ciarrocchi
2005-06-24 12:19 ` Christopher Li
2005-06-24 13:57 ` Kevin Smith
2005-06-24 18:03 ` Matt Mackall
2005-06-28 15:07 ` Petr Baudis
2005-06-28 15:15 ` Sven Verdoolaege
2005-06-28 15:34 ` Petr Baudis
2005-06-28 16:50 ` Cygwin and Native MS Windows (was: Mercurial vs Updated git HOWTO for kernel hackers) Kevin Smith
2005-06-28 16:51 ` Cogito vs. Git " Kevin Smith
2005-06-28 20:54 ` Petr Baudis
2005-06-24 13:16 ` Mercurial vs Updated git HOWTO for kernel hackers Matthias Urlichs
2005-06-24 13:16 ` Matthias Urlichs
2005-06-24 19:00 ` Linus Torvalds
2005-06-24 19:25 ` John W. Linville
2005-06-24 22:38 ` Jeff Garzik
2005-06-24 21:11 ` Daniel Barkalow
2005-06-24 22:08 ` Should "git-read-tree -m -u" delete files? Junio C Hamano
2005-06-24 22:45 ` Mercurial vs Updated git HOWTO for kernel hackers Joel Becker
2005-06-24 23:08 ` Kyle Moffett
2005-06-27 18:31 ` Pavel Machek
2005-06-27 19:05 ` Kyle Moffett
2005-06-27 19:40 ` Matt Mackall
2005-06-27 19:51 ` Benjamin LaHaise
2005-06-27 19:51 ` Benjamin LaHaise
2005-06-27 20:51 ` Matt Mackall
2005-06-27 20:51 ` Matt Mackall
2005-06-27 21:53 ` Ed Tomlinson
2005-07-08 15:18 ` Amin Azez
2005-07-11 8:56 ` Amin Azez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42BA6177.8060202@pobox.com \
--to=jgarzik@pobox.com \
--cc=git@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.