git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git-rev-list and git-format-patch script oddness
@ 2005-09-11  8:52 Martin Langhoff
  2005-09-11  9:20 ` Johannes Schindelin
  2005-09-11 20:32 ` [PATCH] Omit patches that have already been merged from format-patch output Junio C Hamano
  0 siblings, 2 replies; 9+ messages in thread
From: Martin Langhoff @ 2005-09-11  8:52 UTC (permalink / raw)
  To: Git Mailing List

When I run git-format-patch, it insists on outputting merges that have
already been merged upstream, regardless of the fact that
git-merge-base knows better.

Is there a way to get it to skip merged-in patches that git already
has detected as merged upstream?

cheers,

martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: git-rev-list and git-format-patch script oddness
  2005-09-11  8:52 git-rev-list and git-format-patch script oddness Martin Langhoff
@ 2005-09-11  9:20 ` Johannes Schindelin
  2005-09-11 20:32 ` [PATCH] Omit patches that have already been merged from format-patch output Junio C Hamano
  1 sibling, 0 replies; 9+ messages in thread
From: Johannes Schindelin @ 2005-09-11  9:20 UTC (permalink / raw)
  To: Martin Langhoff; +Cc: Git Mailing List

Hi,

On Sun, 11 Sep 2005, Martin Langhoff wrote:

> When I run git-format-patch, it insists on outputting merges that have
> already been merged upstream, regardless of the fact that
> git-merge-base knows better.
> 
> Is there a way to get it to skip merged-in patches that git already
> has detected as merged upstream?

I always use something like

	git-format-patch HEAD ^origin

Hth,
Dscho

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-11  8:52 git-rev-list and git-format-patch script oddness Martin Langhoff
  2005-09-11  9:20 ` Johannes Schindelin
@ 2005-09-11 20:32 ` Junio C Hamano
  2005-09-11 21:08   ` Martin Langhoff
                     ` (2 more replies)
  1 sibling, 3 replies; 9+ messages in thread
From: Junio C Hamano @ 2005-09-11 20:32 UTC (permalink / raw)
  To: git; +Cc: martin.langhoff, Johannes Schindelin

This switches the logic to pick which commits to include in the output
from git-rev-list to git-cherry; as a side effect, 'format-patch ^up mine'
would stop working, although up..mine would continue to work.

Signed-off-by: Junio C Hamano <junkio@cox.net>

---

 Martin Langhoff <martin.langhoff@gmail.com> writes:

 > When I run git-format-patch, it insists on outputting merges that have
 > already been merged upstream, regardless of the fact that
 > git-merge-base knows better.
 >
 > Is there a way to get it to skip merged-in patches that git already
 > has detected as merged upstream?
 >
 > cheers,
 >
 > martin

 This is what the format-patch should have been from the beginning,
 although for hysterical raisins it was not the case (it predates
 git-cherry).  One thing I am reluctant about this is it breaks the
 exact example Johannes just posted.

 git-format-patch.sh |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)

9798f6dad84c9c3e39ed05c91d8e97fe4abc9222
diff --git a/git-format-patch.sh b/git-format-patch.sh
--- a/git-format-patch.sh
+++ b/git-format-patch.sh
@@ -27,8 +27,6 @@ with applymbox.
 }
 
 diff_opts=
-IFS='
-'
 LF='
 '
 
@@ -61,7 +59,10 @@ do
     --output-directo|--output-director|--output-directory)
     case "$#" in 1) usage ;; esac; shift
     outdir="$1" ;;
-    -*)	diff_opts="$diff_opts$LF$1" ;;
+    -*' '* | -*"$LF"* | -*'	'*)
+	# Ignore diff option that has whitespace for now.
+	;;
+    -*)	diff_opts="$diff_opts$1 " ;;
     *) break ;;
     esac
     shift
@@ -72,16 +73,20 @@ tt)
 	die '--keep-subject and --numbered are incompatible.' ;;
 esac
 
-revpair=
+rev1= rev2=
 case "$#" in
 2)
-    revpair="$1..$2" ;;
+    rev1="$1" rev2="$2" ;;
 1)
     case "$1" in
     *..*)
-    	revpair="$1";;
+	rev1=`expr "$1" : '\(.*\)\.\.'`
+	rev2=`expr "$1" : '.*\.\.\(.*\)'`
+	;;
     *)
-	revpair="$1..HEAD";;
+        rev1="$1"
+	rev2="HEAD"
+	;;
     esac ;;
 *)
     usage ;;
@@ -127,10 +132,21 @@ _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0
 _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
 stripCommitHead='/^'"$_x40"' (from '"$_x40"')$/d'
 
-git-rev-list --no-merges --merge-order \
-	$(git-rev-parse --revs-only "$revpair") >$series
+git-cherry -v "$rev1" "$rev2" |
+while read sign rev comment
+do
+	case "$sign" in
+	'-')
+		echo >&2 "Merged already: $comment"
+		;;
+	*)
+		echo $rev
+		;;
+	esac
+done >$series
+
 total=`wc -l <$series | tr -dc "[0-9]"`
-i=$total
+i=1
 while read commit
 do
     git-cat-file commit "$commit" | git-stripspace >$commsg
@@ -145,7 +161,7 @@ do
     esac
 
     file=`printf '%04d-%stxt' $i "$title"`
-    i=`expr "$i" - 1`
+    i=`expr "$i" + 1`
     echo "* $file"
     {
 	mailScript='

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-11 20:32 ` [PATCH] Omit patches that have already been merged from format-patch output Junio C Hamano
@ 2005-09-11 21:08   ` Martin Langhoff
  2005-09-11 21:10   ` Martin Langhoff
  2005-09-12  7:24   ` Martin Langhoff
  2 siblings, 0 replies; 9+ messages in thread
From: Martin Langhoff @ 2005-09-11 21:08 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Johannes Schindelin

>  git-cherry).  One thing I am reluctant about this is it breaks the
>  exact example Johannes just posted.

Well, Johannes example didn't work at all for me. Output was empty,
when I was expecting 4~6 entries.

cheers,

martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-11 20:32 ` [PATCH] Omit patches that have already been merged from format-patch output Junio C Hamano
  2005-09-11 21:08   ` Martin Langhoff
@ 2005-09-11 21:10   ` Martin Langhoff
  2005-09-12  7:24   ` Martin Langhoff
  2 siblings, 0 replies; 9+ messages in thread
From: Martin Langhoff @ 2005-09-11 21:10 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On 9/12/05, Junio C Hamano <junkio@cox.net> wrote:
> This switches the logic to pick which commits to include in the output
> from git-rev-list to git-cherry; as a side effect, 'format-patch ^up mine'
> would stop working, although up..mine would continue to work.

Also -- forgot to say thanks for this. I'm interested in porting this
to cg-log as an option.

BTW, anyone heard of Baudis lately?

cheers,


martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-11 20:32 ` [PATCH] Omit patches that have already been merged from format-patch output Junio C Hamano
  2005-09-11 21:08   ` Martin Langhoff
  2005-09-11 21:10   ` Martin Langhoff
@ 2005-09-12  7:24   ` Martin Langhoff
  2005-09-12  9:34     ` Martin Langhoff
  2 siblings, 1 reply; 9+ messages in thread
From: Martin Langhoff @ 2005-09-12  7:24 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Johannes Schindelin

On 9/12/05, Junio C Hamano <junkio@cox.net> wrote:
> This switches the logic to pick which commits to include in the output
> from git-rev-list to git-cherry; as a side effect, 'format-patch ^up mine'
> would stop working, although up..mine would continue to work.
> 

Hmmm - git-format-patch is now broken. Not sure if it's been this
particular commit or a change in git-rev-list. The bottom line is that
it will only create patches for my commits since the last merge.

This is broken when I work for a few days, merging often from my
upstream. At the end of the dev cycle, I want to generate the
patchbomb for upstream, and it only gives me the commits since the
last merge-in of upstream.

OTOH, git-log-script is doing the same since I've updated today.
Yesterday, both commands were behaving themselves...

cheers,

martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-12  7:24   ` Martin Langhoff
@ 2005-09-12  9:34     ` Martin Langhoff
  2005-09-12 11:48       ` Junio C Hamano
  0 siblings, 1 reply; 9+ messages in thread
From: Martin Langhoff @ 2005-09-12  9:34 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

> Hmmm - git-format-patch is now broken. 

Strike that. PEBCAK: my branch entry was pointing to the wrong place. Sorry. 



martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-12  9:34     ` Martin Langhoff
@ 2005-09-12 11:48       ` Junio C Hamano
  2005-09-12 12:03         ` Martin Langhoff
  0 siblings, 1 reply; 9+ messages in thread
From: Junio C Hamano @ 2005-09-12 11:48 UTC (permalink / raw)
  To: martin.langhoff; +Cc: git

Martin Langhoff <martin.langhoff@gmail.com> writes:

> Strike that. PEBCAK: my branch entry was pointing to the wrong place. Sorry. 

Thanks for quick correction.  Just from a curiosity, do you run
GIT from the proposed updates branch?  I am asking because that
suspect git-format-patch change is supposed to be only in there.

I am somewhat seriously curious.  How many of you on the list
regularly look at what is in the proposed updates, and how many
of you actually run it?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Omit patches that have already been merged from format-patch output.
  2005-09-12 11:48       ` Junio C Hamano
@ 2005-09-12 12:03         ` Martin Langhoff
  0 siblings, 0 replies; 9+ messages in thread
From: Martin Langhoff @ 2005-09-12 12:03 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On 9/12/05, Junio C Hamano <junkio@cox.net> wrote:
> Martin Langhoff <martin.langhoff@gmail.com> writes:
> 
> > Strike that. PEBCAK: my branch entry was pointing to the wrong place. Sorry.
> 
> Thanks for quick correction.  Just from a curiosity, do you run
> GIT from the proposed updates branch?  I am asking because that
> suspect git-format-patch change is supposed to be only in there.
 
I'm running git on ~5 different machines. On the box where I do my
development, I have both 'master' and 'pu' checkouts, but mostly
master. Elsewhere, I track master, with updates every few days, when
my gut feeling is that things aren't too risky. On the servers (add ~4
servers to the list), I deploy only tagged versions, usually from the
Debian package.

And it was a total PEBCAK. I had just pulled in your latest merges to
master and built/installed on a dev box, things were looking odd and I
jumped the gun badly. As you point out, I didn't even have the patch
in.

cheers,


martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-09-12 12:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-11  8:52 git-rev-list and git-format-patch script oddness Martin Langhoff
2005-09-11  9:20 ` Johannes Schindelin
2005-09-11 20:32 ` [PATCH] Omit patches that have already been merged from format-patch output Junio C Hamano
2005-09-11 21:08   ` Martin Langhoff
2005-09-11 21:10   ` Martin Langhoff
2005-09-12  7:24   ` Martin Langhoff
2005-09-12  9:34     ` Martin Langhoff
2005-09-12 11:48       ` Junio C Hamano
2005-09-12 12:03         ` Martin Langhoff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).