Re: [PATCH 3/7] contrib/subtree: Add --unannotate

2013-01-22 Thread greened
Junio C Hamano gits...@pobox.com writes:

 gree...@obbligato.org writes:

 gree...@obbligato.org writes:

 I think this paragraph inherits existing breakage from the beginning
 of time, but I do not think the above will format the second and
 subsequent paragraphs correctly.

 Ok, I'll take a look.

 I don't know what correctly is but it is at least formatted in a
 similar manner to the other options.

 That is what inherits existing breakage means ;-)

Ah.

 The first paragraph is typeset as body text, while the rest are
 typeset in monospaced font, no?

 It should be more like this, I think:

 --option::
 First paragraph
 +
 Second paragraph
 +
 And third paragraph

Ok.

  -David
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/7] contrib/subtree: Add --unannotate

2013-01-15 Thread greened
Junio C Hamano gits...@pobox.com writes:

 David A. Greene gree...@obbligato.org writes:

 diff --git a/contrib/subtree/git-subtree.txt 
 b/contrib/subtree/git-subtree.txt
 index c5bce41..75aa690 100644
 --- a/contrib/subtree/git-subtree.txt
 +++ b/contrib/subtree/git-subtree.txt
 @@ -198,6 +198,21 @@ OPTIONS FOR split
  git subtree tries to make it work anyway, particularly
  if you use --rejoin, but it may not always be effective.
  
 +--unannotate=annotation::
 +This option is only valid for the split command.
 +
 +When generating synthetic history, try to remove the prefix
 +annotation from each commit message (using bash's strip
 +shortest match from beginning command, which supports
 +globbing).  This makes sense if you format library commits
 +like library: Change something or other when you're working
 +in your project's repository, but you want to remove this
 +prefix when pushing back to the library's upstream repository.
 +(In this case --unannotate='*: ' would work well.)
 +
 +Like --annotate,  you need to use the same annotation
 +whenever you split, or you may run into problems.

 I think this paragraph inherits existing breakage from the beginning
 of time, but I do not think the above will format the second and
 subsequent paragraphs correctly.

Ok, I'll take a look.

 I've applied all seven patches in the series with minor fix-ups, and
 will merge it to 'pu'.

Thanks!

  -David
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/7] contrib/subtree: Add --unannotate

2013-01-15 Thread greened
gree...@obbligato.org writes:

 I think this paragraph inherits existing breakage from the beginning
 of time, but I do not think the above will format the second and
 subsequent paragraphs correctly.

 Ok, I'll take a look.

I don't know what correctly is but it is at least formatted in a
similar manner to the other options.

  -David
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/7] contrib/subtree: Add --unannotate

2013-01-15 Thread Junio C Hamano
gree...@obbligato.org writes:

 gree...@obbligato.org writes:

 I think this paragraph inherits existing breakage from the beginning
 of time, but I do not think the above will format the second and
 subsequent paragraphs correctly.

 Ok, I'll take a look.

 I don't know what correctly is but it is at least formatted in a
 similar manner to the other options.

That is what inherits existing breakage means ;-)

The first paragraph is typeset as body text, while the rest are
typeset in monospaced font, no?

It should be more like this, I think:

--option::
First paragraph
+
Second paragraph
+
And third paragraph


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/7] contrib/subtree: Add --unannotate

2013-01-08 Thread David A. Greene
From: James Nylen jny...@gmail.com

Teach git-subtree about --unannotate.  This option strips a prefix
from a commit message when doing a subtree split.

Signed-off-by: James Nylen jny...@gmail.com

Signed-off-by: David A. Greene gree...@obbligato.org
---
 contrib/subtree/git-subtree.sh |   11 +--
 contrib/subtree/git-subtree.txt|   15 +++
 contrib/subtree/t/t7900-subtree.sh |   12 ++--
 3 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 5341b36..cac0680 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -21,6 +21,7 @@ P,prefix= the name of the subdir to split out
 m,message=use the given message as the commit message for the merge commit
  options for 'split'
 annotate= add a prefix to commit message of new commits
+unannotate=   remove a prefix from new commit messages (supports bash globbing)
 b,branch= create a new branch from the split subtree
 ignore-joins  ignore prior --rejoin commits
 onto= try connecting new tree to an existing one
@@ -43,6 +44,7 @@ onto=
 rejoin=
 ignore_joins=
 annotate=
+unannotate=
 squash=
 message=
 
@@ -80,6 +82,8 @@ while [ $# -gt 0 ]; do
-d) debug=1 ;;
--annotate) annotate=$1; shift ;;
--no-annotate) annotate= ;;
+   --unannotate) unannotate=$1; shift ;;
+   --no-unannotate) unannotate= ;;
-b) branch=$1; shift ;;
-P) prefix=$1; shift ;;
-m) message=$1; shift ;;
@@ -314,8 +318,11 @@ copy_commit()
GIT_COMMITTER_NAME \
GIT_COMMITTER_EMAIL \
GIT_COMMITTER_DATE
-   (echo -n $annotate; cat ) |
-   git commit-tree $2 $3  # reads the rest of stdin
+   (
+   read FIRST_LINE
+   echo $annotate${FIRST_LINE#$unannotate}
+   cat  # reads the rest of stdin
+   ) | git commit-tree $2 $3
) || die Can't copy commit $1
 }
 
diff --git a/contrib/subtree/git-subtree.txt b/contrib/subtree/git-subtree.txt
index c5bce41..75aa690 100644
--- a/contrib/subtree/git-subtree.txt
+++ b/contrib/subtree/git-subtree.txt
@@ -198,6 +198,21 @@ OPTIONS FOR split
git subtree tries to make it work anyway, particularly
if you use --rejoin, but it may not always be effective.
 
+--unannotate=annotation::
+   This option is only valid for the split command.
+
+   When generating synthetic history, try to remove the prefix
+   annotation from each commit message (using bash's strip
+   shortest match from beginning command, which supports
+   globbing).  This makes sense if you format library commits
+   like library: Change something or other when you're working
+   in your project's repository, but you want to remove this
+   prefix when pushing back to the library's upstream repository.
+   (In this case --unannotate='*: ' would work well.)
+   
+   Like --annotate,  you need to use the same annotation
+   whenever you split, or you may run into problems.
+
 -b branch::
 --branch=branch::
This option is only valid for the split command.
diff --git a/contrib/subtree/t/t7900-subtree.sh 
b/contrib/subtree/t/t7900-subtree.sh
index 3f17f55..de45e34 100755
--- a/contrib/subtree/t/t7900-subtree.sh
+++ b/contrib/subtree/t/t7900-subtree.sh
@@ -143,7 +143,7 @@ test_expect_success 'merge fetched subproj' '
 
 test_expect_success 'add main-sub5' '
 create subdir/main-sub5 
-git commit -m main-sub5
+git commit -m subproj: main-sub5
 '
 
 test_expect_success 'add main6' '
@@ -153,7 +153,7 @@ test_expect_success 'add main6' '
 
 test_expect_success 'add main-sub7' '
 create subdir/main-sub7 
-git commit -m main-sub7
+git commit -m subproj: main-sub7
 '
 
 test_expect_success 'fetch new subproj history' '
@@ -226,6 +226,14 @@ test_expect_success 'check hash of split' '
 check_equal ''$new_hash'' $subdir_hash
 '
 
+test_expect_success 'check --unannotate' '
+spl1=$(git subtree split --unannotate='subproj:' --prefix subdir 
--onto FETCH_HEAD --message Split  rejoin --rejoin) 
+undo 
+git subtree split --unannotate='subproj:' --prefix subdir --onto 
FETCH_HEAD --branch splitunann 
+check_equal ''$(git rev-parse splitunann)'' $spl1 
+check_equal ''$(git log splitunann | grep subproj)'' 
+'
+
 test_expect_success 'check split with --branch for an existing branch' '
 spl1=''$(git subtree split --annotate=''*'' --prefix subdir --onto 
FETCH_HEAD --message Split  rejoin --rejoin)'' 
 undo 
-- 
1.7.10.4

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  

Re: [PATCH 3/7] contrib/subtree: Add --unannotate

2013-01-08 Thread Junio C Hamano
David A. Greene gree...@obbligato.org writes:

 diff --git a/contrib/subtree/git-subtree.txt b/contrib/subtree/git-subtree.txt
 index c5bce41..75aa690 100644
 --- a/contrib/subtree/git-subtree.txt
 +++ b/contrib/subtree/git-subtree.txt
 @@ -198,6 +198,21 @@ OPTIONS FOR split
   git subtree tries to make it work anyway, particularly
   if you use --rejoin, but it may not always be effective.
  
 +--unannotate=annotation::
 + This option is only valid for the split command.
 +
 + When generating synthetic history, try to remove the prefix
 + annotation from each commit message (using bash's strip
 + shortest match from beginning command, which supports
 + globbing).  This makes sense if you format library commits
 + like library: Change something or other when you're working
 + in your project's repository, but you want to remove this
 + prefix when pushing back to the library's upstream repository.
 + (In this case --unannotate='*: ' would work well.)
 + 
 + Like --annotate,  you need to use the same annotation
 + whenever you split, or you may run into problems.

I think this paragraph inherits existing breakage from the beginning
of time, but I do not think the above will format the second and
subsequent paragraphs correctly.

I've applied all seven patches in the series with minor fix-ups, and
will merge it to 'pu'.

Thanks.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html