Re: [PATCH 3/7] contrib/subtree: Add --unannotate
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
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
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
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
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
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