git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git-format-patch -3
@ 2007-01-17 21:35 Junio C Hamano
  2007-01-17 21:51 ` [PATCH] Add --summary to git-format-patch by default Junio C Hamano
  2007-01-18  1:25 ` [PATCH] git-format-patch -3 Johannes Schindelin
  0 siblings, 2 replies; 8+ messages in thread
From: Junio C Hamano @ 2007-01-17 21:35 UTC (permalink / raw)
  To: git; +Cc: Johannes Schindelin

This teaches "git-format-patch" to honor the --max-count
parameter revision traversal machinery takes, so that you can
say "git-format-patch -3" to process the three topmost commits
from the current HEAD (or "git-format-patch -2 topic" to name a
specific branch).

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

 * I think this is incompatible with --ignore-if-upstream, which
   I haven't bothered to look into yet.

   Likes, dislikes?

 builtin-log.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/builtin-log.c b/builtin-log.c
index 1cd9d3f..9453e6d 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -482,8 +482,13 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
 	}
 
 	if (rev.pending.nr == 1) {
-		rev.pending.objects[0].item->flags |= UNINTERESTING;
-		add_head(&rev);
+		if (rev.max_count < 0) {
+			rev.pending.objects[0].item->flags |= UNINTERESTING;
+			add_head(&rev);
+		}
+		/* Otherwise, it is "format-patch -22 HEAD", and
+		 * get_revision() would return only the specified count.
+		 */
 	}
 
 	if (ignore_if_in_upstream)

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

* [PATCH] Add --summary to git-format-patch by default
  2007-01-17 21:35 [PATCH] git-format-patch -3 Junio C Hamano
@ 2007-01-17 21:51 ` Junio C Hamano
  2007-01-17 22:41   ` [PATCH] git-format-patch: make --binary on " Junio C Hamano
  2007-01-18  1:04   ` [PATCH] Add --summary to git-format-patch by default Shawn O. Pearce
  2007-01-18  1:25 ` [PATCH] git-format-patch -3 Johannes Schindelin
  1 sibling, 2 replies; 8+ messages in thread
From: Junio C Hamano @ 2007-01-17 21:51 UTC (permalink / raw)
  To: git

This adds --summary output in addition to the --stat to the
output from git-format-patch by default.

I think additions, removals and filemode changes are rare but
notable events and always showing it makes sense.

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

 * An alternative would be to give --summary whenever --stat is
   asked for _any_ diff family of commands, which might make
   sense but I suspect is going too far.  At least format-patch
   is a good place to add this since it allows accidental mode
   changes to be caught at the last minute before sending the
   message out to the public.

   Opinions?

diff --git a/builtin-log.c b/builtin-log.c
index 9453e6d..c32a1df 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -468,7 +468,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
 		die ("unrecognized argument: %s", argv[1]);
 
 	if (!rev.diffopt.output_format)
-		rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_PATCH;
+		rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_SUMMARY | DIFF_FORMAT_PATCH;
 
 	if (!output_directory)
 		output_directory = prefix;
diff --git a/t/t4013/diff.format-patch_--attach_--stdout_initial..master b/t/t4013/diff.format-patch_--attach_--stdout_initial..master
index b4745e1..e5ddd6f 100644
--- a/t/t4013/diff.format-patch_--attach_--stdout_initial..master
+++ b/t/t4013/diff.format-patch_--attach_--stdout_initial..master
@@ -19,6 +19,7 @@ This is the second commit.
  file0   |    3 +++
  file2   |    3 ---
  3 files changed, 5 insertions(+), 3 deletions(-)
+ delete mode 100644 file2
 --------------g-i-t--v-e-r-s-i-o-n
 Content-Type: text/x-patch;
  name="1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44.diff"
@@ -77,6 +78,7 @@ Content-Transfer-Encoding: 8bit
  dir/sub |    2 ++
  file1   |    3 +++
  2 files changed, 5 insertions(+), 0 deletions(-)
+ create mode 100644 file1
 --------------g-i-t--v-e-r-s-i-o-n
 Content-Type: text/x-patch;
  name="9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0.diff"
@@ -126,6 +128,7 @@ Content-Transfer-Encoding: 8bit
  file0   |    3 +++
  file3   |    4 ++++
  3 files changed, 9 insertions(+), 0 deletions(-)
+ create mode 100644 file3
 --------------g-i-t--v-e-r-s-i-o-n
 Content-Type: text/x-patch;
  name="c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a.diff"
diff --git a/t/t4013/diff.format-patch_--attach_--stdout_initial..master^ b/t/t4013/diff.format-patch_--attach_--stdout_initial..master^
index a9d1cd3..d0dd19b 100644
--- a/t/t4013/diff.format-patch_--attach_--stdout_initial..master^
+++ b/t/t4013/diff.format-patch_--attach_--stdout_initial..master^
@@ -19,6 +19,7 @@ This is the second commit.
  file0   |    3 +++
  file2   |    3 ---
  3 files changed, 5 insertions(+), 3 deletions(-)
+ delete mode 100644 file2
 --------------g-i-t--v-e-r-s-i-o-n
 Content-Type: text/x-patch;
  name="1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44.diff"
@@ -77,6 +78,7 @@ Content-Transfer-Encoding: 8bit
  dir/sub |    2 ++
  file1   |    3 +++
  2 files changed, 5 insertions(+), 0 deletions(-)
+ create mode 100644 file1
 --------------g-i-t--v-e-r-s-i-o-n
 Content-Type: text/x-patch;
  name="9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0.diff"
diff --git a/t/t4013/diff.format-patch_--attach_--stdout_initial..side b/t/t4013/diff.format-patch_--attach_--stdout_initial..side
index 57b9d0b..67a95c5 100644
--- a/t/t4013/diff.format-patch_--attach_--stdout_initial..side
+++ b/t/t4013/diff.format-patch_--attach_--stdout_initial..side
@@ -17,6 +17,7 @@ Content-Transfer-Encoding: 8bit
  file0   |    3 +++
  file3   |    4 ++++
  3 files changed, 9 insertions(+), 0 deletions(-)
+ create mode 100644 file3
 --------------g-i-t--v-e-r-s-i-o-n
 Content-Type: text/x-patch;
  name="c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a.diff"
diff --git a/t/t4013/diff.format-patch_--stdout_initial..master b/t/t4013/diff.format-patch_--stdout_initial..master
index c33302e..8b88ca4 100644
--- a/t/t4013/diff.format-patch_--stdout_initial..master
+++ b/t/t4013/diff.format-patch_--stdout_initial..master
@@ -10,6 +10,7 @@ This is the second commit.
  file0   |    3 +++
  file2   |    3 ---
  3 files changed, 5 insertions(+), 3 deletions(-)
+ delete mode 100644 file2
 
 diff --git a/dir/sub b/dir/sub
 index 35d242b..8422d40 100644
@@ -53,6 +54,7 @@ Subject: [PATCH] Third
  dir/sub |    2 ++
  file1   |    3 +++
  2 files changed, 5 insertions(+), 0 deletions(-)
+ create mode 100644 file1
 
 diff --git a/dir/sub b/dir/sub
 index 8422d40..cead32e 100644
@@ -87,6 +89,7 @@ Subject: [PATCH] Side
  file0   |    3 +++
  file3   |    4 ++++
  3 files changed, 9 insertions(+), 0 deletions(-)
+ create mode 100644 file3
 
 diff --git a/dir/sub b/dir/sub
 index 35d242b..7289e35 100644
diff --git a/t/t4013/diff.format-patch_--stdout_initial..master^ b/t/t4013/diff.format-patch_--stdout_initial..master^
index 03d0f96..47a4b88 100644
--- a/t/t4013/diff.format-patch_--stdout_initial..master^
+++ b/t/t4013/diff.format-patch_--stdout_initial..master^
@@ -10,6 +10,7 @@ This is the second commit.
  file0   |    3 +++
  file2   |    3 ---
  3 files changed, 5 insertions(+), 3 deletions(-)
+ delete mode 100644 file2
 
 diff --git a/dir/sub b/dir/sub
 index 35d242b..8422d40 100644
@@ -53,6 +54,7 @@ Subject: [PATCH] Third
  dir/sub |    2 ++
  file1   |    3 +++
  2 files changed, 5 insertions(+), 0 deletions(-)
+ create mode 100644 file1
 
 diff --git a/dir/sub b/dir/sub
 index 8422d40..cead32e 100644
diff --git a/t/t4013/diff.format-patch_--stdout_initial..side b/t/t4013/diff.format-patch_--stdout_initial..side
index d10a465..e765088 100644
--- a/t/t4013/diff.format-patch_--stdout_initial..side
+++ b/t/t4013/diff.format-patch_--stdout_initial..side
@@ -9,6 +9,7 @@ Subject: [PATCH] Side
  file0   |    3 +++
  file3   |    4 ++++
  3 files changed, 9 insertions(+), 0 deletions(-)
+ create mode 100644 file3
 
 diff --git a/dir/sub b/dir/sub
 index 35d242b..7289e35 100644

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

* [PATCH] git-format-patch: make --binary on by default
  2007-01-17 21:51 ` [PATCH] Add --summary to git-format-patch by default Junio C Hamano
@ 2007-01-17 22:41   ` Junio C Hamano
  2007-01-17 23:06     ` [PATCH - todo] Changes to e-mailed patch handling in v1.5.0 Junio C Hamano
  2007-01-18  1:04   ` [PATCH] Add --summary to git-format-patch by default Shawn O. Pearce
  1 sibling, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2007-01-17 22:41 UTC (permalink / raw)
  To: git

It does not make much sense to generate a patch that cannot be
applied.  If --text is specified on the command line it still
takes precedence.

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

 * I would opt not to make "git am --binary" the default for
   now.  Even with this change, sending binary patch over e-mail
   is unusual as it is harder to review --- I think it makes
   sense to error out by default and draw attention from the
   person who is applying the patch rather than accepting binary
   patch automatically as if nothing unusual happened.

 builtin-log.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/builtin-log.c b/builtin-log.c
index c32a1df..930cc04 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -470,6 +470,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
 	if (!rev.diffopt.output_format)
 		rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_SUMMARY | DIFF_FORMAT_PATCH;
 
+	if (!rev.diffopt.text)
+		rev.diffopt.binary = 1;
+
 	if (!output_directory)
 		output_directory = prefix;
 
-- 
1.5.0.rc1.gde38

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

* [PATCH - todo] Changes to e-mailed patch handling in v1.5.0
  2007-01-17 22:41   ` [PATCH] git-format-patch: make --binary on " Junio C Hamano
@ 2007-01-17 23:06     ` Junio C Hamano
  2007-01-18  8:18       ` Andy Parkins
  0 siblings, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2007-01-17 23:06 UTC (permalink / raw)
  To: git

This applies to the draft v1.5.0 release notes in 'todo' branch and
summarizes the changes my patches to format-patch bring in.  

I am neutral about changing the default suffix from .txt to .patch;
comments?


diff --git a/v1.5.0.txt b/v1.5.0.txt
index 2fccf8e..6a9a8d6 100644
--- a/v1.5.0.txt
+++ b/v1.5.0.txt
@@ -268,6 +268,21 @@ Updates in v1.5.0 since v1.4.4 series
    excuse us for this very minor one-time inconvenience.
 
 
+* e-mailed patches
+
+ - See the above I18n section.
+
+ - git-format-patch now enables --binary without being asked.
+   git-am does _not_ default to it, as sending binary patch via
+   e-mail is unusual and is harder to review than textual
+   patches and it is prudent to require the person who is
+   applying the patch to explicitly ask for it.
+
+ - The default suffix for git-format-patch output is now ".patch",
+   not ".txt".  This can be changed with --suffix=.txt option,
+   or "format.suffix = .txt" in the configuration.
+
+
 * Foreign SCM interfaces
 
   - git-svn now requires the Perl SVN:: libraries, the

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

* Re: [PATCH] Add --summary to git-format-patch by default
  2007-01-17 21:51 ` [PATCH] Add --summary to git-format-patch by default Junio C Hamano
  2007-01-17 22:41   ` [PATCH] git-format-patch: make --binary on " Junio C Hamano
@ 2007-01-18  1:04   ` Shawn O. Pearce
  1 sibling, 0 replies; 8+ messages in thread
From: Shawn O. Pearce @ 2007-01-18  1:04 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <junkio@cox.net> wrote:
> This adds --summary output in addition to the --stat to the
> output from git-format-patch by default.
>    Opinions?

This is the right thing to do.  format-patch should default to
both --summary and --stat.

-- 
Shawn.

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

* Re: [PATCH] git-format-patch -3
  2007-01-17 21:35 [PATCH] git-format-patch -3 Junio C Hamano
  2007-01-17 21:51 ` [PATCH] Add --summary to git-format-patch by default Junio C Hamano
@ 2007-01-18  1:25 ` Johannes Schindelin
  1 sibling, 0 replies; 8+ messages in thread
From: Johannes Schindelin @ 2007-01-18  1:25 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Wed, 17 Jan 2007, Junio C Hamano wrote:

>  * I think this is incompatible with --ignore-if-upstream, which
>    I haven't bothered to look into yet.

Uhm. What exactly _would_ be upstream?

At the moment, for "--ignore-if-in-upstream" we handle _only_ ranges 
(a..b), where we treat the left part as the upstream, so we first parse 
all the diffs in b..a, and then ignore all commits in a..b which have an 
already-seen diff hash.

However, if we want to do the logical analogue with "-22 HEAD", the 
equivalent to b..a would trivially contain no commits at all.

>    Likes, dislikes?

It sure is supported by the principle of least surprise.

Ciao,
Dscho

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

* Re: [PATCH - todo] Changes to e-mailed patch handling in v1.5.0
  2007-01-17 23:06     ` [PATCH - todo] Changes to e-mailed patch handling in v1.5.0 Junio C Hamano
@ 2007-01-18  8:18       ` Andy Parkins
  2007-01-18 15:13         ` Brian Gernhardt
  0 siblings, 1 reply; 8+ messages in thread
From: Andy Parkins @ 2007-01-18  8:18 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

On Wednesday 2007 January 17 23:06, Junio C Hamano wrote:

> I am neutral about changing the default suffix from .txt to .patch;
> comments?

I'm in favour.  The extension indicates file type, and gives guidance on the 
tool that can read it. Though .patch is stored in text it's more than that 
(c.f. .html) - the text inside it has meaning beyond just the text.

To me, .txt would implies that the file format is in human-language format 
(i.e. words, sentences, and paragraphs).


Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE
andyparkins@gmail.com

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

* Re: [PATCH - todo] Changes to e-mailed patch handling in v1.5.0
  2007-01-18  8:18       ` Andy Parkins
@ 2007-01-18 15:13         ` Brian Gernhardt
  0 siblings, 0 replies; 8+ messages in thread
From: Brian Gernhardt @ 2007-01-18 15:13 UTC (permalink / raw)
  To: Andy Parkins; +Cc: git, Junio C Hamano


On Jan 18, 2007, at 3:18 AM, Andy Parkins wrote:

> On Wednesday 2007 January 17 23:06, Junio C Hamano wrote:
>
>> I am neutral about changing the default suffix from .txt to .patch;
>> comments?
>
> I'm in favour.  The extension indicates file type, and gives  
> guidance on the
> tool that can read it. Though .patch is stored in text it's more  
> than that
> (c.f. .html) - the text inside it has meaning beyond just the text.
>
> To me, .txt would implies that the file format is in human-language  
> format
> (i.e. words, sentences, and paragraphs).

Ditto.

Also, Vim nicely detects the From <SHA1> line at the top and thinks  
that it's an mbox file.  With the patch extension it ignores that and  
gives me my diff coloring again.

~~ Brian

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

end of thread, other threads:[~2007-01-18 15:13 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-17 21:35 [PATCH] git-format-patch -3 Junio C Hamano
2007-01-17 21:51 ` [PATCH] Add --summary to git-format-patch by default Junio C Hamano
2007-01-17 22:41   ` [PATCH] git-format-patch: make --binary on " Junio C Hamano
2007-01-17 23:06     ` [PATCH - todo] Changes to e-mailed patch handling in v1.5.0 Junio C Hamano
2007-01-18  8:18       ` Andy Parkins
2007-01-18 15:13         ` Brian Gernhardt
2007-01-18  1:04   ` [PATCH] Add --summary to git-format-patch by default Shawn O. Pearce
2007-01-18  1:25 ` [PATCH] git-format-patch -3 Johannes Schindelin

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).