git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff Sipek <jeffpc@josefsipek.net>
To: Per Cederqvist <cederp@opera.com>
Cc: git@vger.kernel.org
Subject: Re: [GUILT v4 15/33] Produce legal patch names in guilt-import-commit.
Date: Thu, 22 Jan 2015 09:15:45 -0500	[thread overview]
Message-ID: <20150122141545.GB101460@meili.jeffnet.31bits.net> (raw)
In-Reply-To: <1400450409-30998-16-git-send-email-cederp@opera.com>

I just tried to run the regression suite on my OpenIndiana laptop and I got
this failure.

034: --- t-034.out	2015-01-22 14:02:23.634515474 +0000
+++ /tmp/guilt.log.14878	2015-01-22 14:03:54.258790788 +0000
@@ -83,7 +83,7 @@
 [master aedb74f] @
  Author: Author Name <author@email>
  1 file changed, 1 insertion(+)
-% create_commit a Backslash\is\forbidden.
+% create_commit a Backslash\is
                               orbidden.
 [master 0a46f8f] Backslash\is\forbidden.
  Author: Author Name <author@email>
  1 file changed, 1 insertion(+)
Test failed!

Test:		034
Log file:	/tmp/guilt.log.14878
Repo dir:	"/tmp/guilt reg.12106"

make[1]: *** [all] Error 1


It's obviously the "cmd" command printing that's busted.  The following change
makes the test suite pass.  Does it work for you?  (If so, I'll commit it after
pulling your whole series.)

Thanks,

Jeff.


diff --git a/regression/scaffold b/regression/scaffold
index 97cff4e..593e9da 100644
--- a/regression/scaffold
+++ b/regression/scaffold
@@ -50,7 +50,7 @@ function filter_dd
 # usage: cmd <cmd>..
 function cmd
 {
-	echo "% $@"
+	printf "%% %s\n" "$*"
 	if ! (
 		exec 3>&1
 		rv=`(("$@" 2>&1; echo $? >&4) | replace_path >&3 ) 4>&1`

On Sun, May 18, 2014 at 11:59:51PM +0200, Per Cederqvist wrote:
> Try harder to create patch names that adhere to the rules in
> git-check-ref-format(1) when deriving a patch name from the commit
> message.  Verify that the derived name using "git check-ref-format",
> and as a final fallback simply use the patch name "x" (to ensure that
> the code is future-proof in case new rules are added in the future).
> 
> Always append a ".patch" suffix to the patch name.
> 
> Added test cases.
> 
> Signed-off-by: Per Cederqvist <cederp@opera.com>
> Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
> ---
>  guilt-import-commit  |  20 +-
>  regression/t-034.out | 567 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  regression/t-034.sh  |  71 +++++++
>  3 files changed, 656 insertions(+), 2 deletions(-)
>  create mode 100644 regression/t-034.out
>  create mode 100755 regression/t-034.sh
> 
> diff --git a/guilt-import-commit b/guilt-import-commit
> index f14647c..6260c56 100755
> --- a/guilt-import-commit
> +++ b/guilt-import-commit
> @@ -28,19 +28,35 @@ disp "Current head: `git rev-parse \`git_branch\``" >&2
>  for rev in `git rev-list $rhash`; do
>  	s=`git log --pretty=oneline -1 $rev | cut -c 42-`
>  
> +	# Try to convert the first line of the commit message to a
> +	# valid patch name.
>  	fname=`echo $s | sed -e "s/&/and/g" -e "s/[ :]/_/g" -e "s,[/\\],-,g" \
>  			-e "s/['\\[{}]//g" -e 's/]//g' -e 's/\*/-/g' \
> -			-e 's/\?/-/g' | tr A-Z a-z`
> +			-e 's/\?/-/g' -e 's/\.\.\.*/./g' -e 's/^\.//' \
> +			-e 's/\.patch$//' -e 's/\.$//' | tr A-Z a-z`
> +
> +	if ! valid_patchname "$fname"; then
> +		# Try harder to make it a legal commit name by
> +		# removing all but a few safe characters.
> +		fname=`echo $fname|tr -d -c _a-zA-Z0-9---/\\n`
> +	fi
> +	if ! valid_patchname "$fname"; then
> +		# If we failed to derive a legal patch name, use the
> +		# name "x".  (If this happens, we likely have to
> +		# append a suffix to make the name unique.)
> +		fname=x
> +	fi
>  
>  	disp "Converting `echo $rev | cut -c 1-8` as $fname"
>  
>  	mangle_prefix=1
>  	fname_base=$fname
> -	while [ -f "$GUILT_DIR/$branch/$fname" ]; do
> +	while [ -f "$GUILT_DIR/$branch/$fname.patch" ]; do
>  		fname="$fname_base-$mangle_prefix"
>  	        mangle_prefix=`expr $mangle_prefix + 1`
>  		disp "Patch under that name exists...trying '$fname'"
>  	done
> +	fname="$fname".patch
>  
>  	(
>  		do_make_header $rev
> diff --git a/regression/t-034.out b/regression/t-034.out
> new file mode 100644
> index 0000000..7bc9459
> --- /dev/null
> +++ b/regression/t-034.out
> @@ -0,0 +1,567 @@
> +% setup_git_repo
> +% git tag base
> +% create_commit a The sequence /. is forbidden.
> +[master eebb76e] The sequence /. is forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> + create mode 100644 a
> +% create_commit a The sequence .lock/ is forbidden.
> +[master 45e81b5] The sequence .lock/ is forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a A/component/may/not/end/in/foo.lock
> +[master bbf3f59] A/component/may/not/end/in/foo.lock
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Two consecutive dots (..) is forbidden.
> +[master 1535e67] Two consecutive dots (..) is forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Check/multiple/../dots/...../foo..patch
> +[master 48eb60c] Check/multiple/../dots/...../foo..patch
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Space is forbidden.
> +[master 10dea83] Space is forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Tilde~is~forbidden.
> +[master 70a83b7] Tilde~is~forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Caret^is^forbidden.
> +[master ee6ef2c] Caret^is^forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Colon:is:forbidden.
> +[master c077fe2] Colon:is:forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Del\x7fis\x7fforbidden.
> +[master 589ee30] Del\x7fis\x7fforbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% git branch some-branch
> +% git tag some-tag
> +% create_commit a Ctrl\x01is\x02forbidden.
> +[master e63cdde] Ctrl\x01is\x02forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a CR
> is
> also
> forbidden.
> +[master 21ad093] CR
> is
> also
> forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Question-mark?is?forbidden.
> +[master be2fa9b] Question-mark?is?forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Asterisk*is*forbidden.
> +[master af7b50f] Asterisk*is*forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Open[bracket[is[forbidden.
> +[master 689f618] Open[bracket[is[forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Multiple/slashes//are//forbidden.
> +[master 6e7d52a] Multiple/slashes//are//forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Cannot/end/in/slash/
> +[master 95bb6cd] Cannot/end/in/slash/
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Cannot end in ..
> +[master 106e8e5] Cannot end in ..
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Cannot@{have@{the@{sequence@{at-brace.
> +[master 30187ed] Cannot@{have@{the@{sequence@{at-brace.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a @
> +[master aedb74f] @
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Backslash\is\forbidden.
> +[master 0a46f8f] Backslash\is\forbidden.
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% create_commit a Can/have/embedded/single/slashes
> +[master 2a8b188] Can/have/embedded/single/slashes
> + Author: Author Name <author@email>
> + 1 file changed, 1 insertion(+)
> +% git log
> +commit 2a8b1889aa5066193bac978e6bf5073ffcfa6541
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Can/have/embedded/single/slashes
> +
> +commit 0a46f8fa7c8c5a6f1039f842fe5cbd21d3a2a2a6
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Backslash\is\forbidden.
> +
> +commit aedb74fd8388282fd7af50cb191a7f62bfc45eb5
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    @
> +
> +commit 30187ed0f47d12df9cedcbb846647d0d52130c12
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Cannot@{have@{the@{sequence@{at-brace.
> +
> +commit 106e8e5a8cceec7297af97376ca5f93506643d0b
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Cannot end in ..
> +
> +commit 95bb6cd7edf7b1e634a1e7d02c8faa99e39cbbf2
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Cannot/end/in/slash/
> +
> +commit 6e7d52a7dacc684225c11b4edd2bac25fb52bd9b
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Multiple/slashes//are//forbidden.
> +
> +commit 689f618085195775d204898254154b8bb50897a5
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Open[bracket[is[forbidden.
> +
> +commit af7b50f93854bc5f46de5a389c1f3dea081eae2f
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Asterisk*is*forbidden.
> +
> +commit be2fa9b5c5788dc05c4036f1b8197a1d33169610
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Question-mark?is?forbidden.
> +
> +commit 21ad093a0c1b4a96285180a3d7b99a4045ef9202
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    CR
> is
> also
> forbidden.
> +
> +commit e63cdde7a1c90b66d7d411683528200f3f067d5f
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Ctrl\x01is\x02forbidden.
> +
> +commit 589ee305a82aacf155529e75cbc84e661c37c83d
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Del\x7fis\x7fforbidden.
> +
> +commit c077fe203fd18036fb00b56eec1763673d1769c6
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Colon:is:forbidden.
> +
> +commit ee6ef2cc9dd5525409300377b013c0d9734bd931
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Caret^is^forbidden.
> +
> +commit 70a83b705a2602a9493aba7f8f22e7abd13adc63
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Tilde~is~forbidden.
> +
> +commit 10dea8380135f4d10cd10324e13da659261ceda3
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Space is forbidden.
> +
> +commit 48eb60cddaefdaac5f78655f9028a9da741a18d1
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Check/multiple/../dots/...../foo..patch
> +
> +commit 1535e67718949abf72f843685a1672ebfe4bd21f
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Two consecutive dots (..) is forbidden.
> +
> +commit bbf3f5926e11d97b08cdb6e833c9deb603453d1b
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    A/component/may/not/end/in/foo.lock
> +
> +commit 45e81b5163ec3ed656b058ac3fd95b8986824e0f
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    The sequence .lock/ is forbidden.
> +
> +commit eebb76e96913d2dc78aef5f233fadc74af770b3b
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    The sequence /. is forbidden.
> +
> +commit d4850419ccc1146c7169f500725ce504b9774ed0
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    initial
> +    
> +    Signed-off-by: Commiter Name <commiter@email>
> +% guilt init
> +% guilt import-commit base..HEAD
> +About to begin conversion...
> +Current head: 2a8b1889aa5066193bac978e6bf5073ffcfa6541
> +Converting 2a8b1889 as can-have-embedded-single-slashes
> +Converting 0a46f8fa as backslash-isorbidden
> +Converting aedb74fd as x
> +Converting 30187ed0 as cannot@have@the@sequence@at-brace
> +Converting 106e8e5a as cannot_end_in_
> +Converting 95bb6cd7 as cannot-end-in-slash-
> +Converting 6e7d52a7 as multiple-slashes--are--forbidden
> +Converting 689f6180 as openbracketisforbidden
> +Converting af7b50f9 as asterisk-is-forbidden
> +Converting be2fa9b5 as question-mark-is-forbidden
> +Converting 21ad093a as crisalsoforbidden
> +Converting e63cdde7 as ctrlisforbidden
> +Converting 589ee305 as delisforbidden
> +Converting c077fe20 as colon_is_forbidden
> +Converting ee6ef2cc as caretisforbidden
> +Converting 70a83b70 as tildeisforbidden
> +Converting 10dea838 as space_is_forbidden
> +Converting 48eb60cd as check-multiple-.-dots-.-foo
> +Converting 1535e677 as two_consecutive_dots_(.)_is_forbidden
> +Converting bbf3f592 as a-component-may-not-end-in-foolock
> +Converting 45e81b51 as the_sequence_.lock-_is_forbidden
> +Converting eebb76e9 as the_sequence_-._is_forbidden
> +Done.
> +Current head: d4850419ccc1146c7169f500725ce504b9774ed0
> +% guilt push -a
> +Applying patch..the_sequence_-._is_forbidden.patch
> +Patch applied.
> +Applying patch..the_sequence_.lock-_is_forbidden.patch
> +Patch applied.
> +Applying patch..a-component-may-not-end-in-foolock.patch
> +Patch applied.
> +Applying patch..two_consecutive_dots_(.)_is_forbidden.patch
> +Patch applied.
> +Applying patch..check-multiple-.-dots-.-foo.patch
> +Patch applied.
> +Applying patch..space_is_forbidden.patch
> +Patch applied.
> +Applying patch..tildeisforbidden.patch
> +Patch applied.
> +Applying patch..caretisforbidden.patch
> +Patch applied.
> +Applying patch..colon_is_forbidden.patch
> +Patch applied.
> +Applying patch..delisforbidden.patch
> +Patch applied.
> +Applying patch..ctrlisforbidden.patch
> +Patch applied.
> +Applying patch..crisalsoforbidden.patch
> +Patch applied.
> +Applying patch..question-mark-is-forbidden.patch
> +Patch applied.
> +Applying patch..asterisk-is-forbidden.patch
> +Patch applied.
> +Applying patch..openbracketisforbidden.patch
> +Patch applied.
> +Applying patch..multiple-slashes--are--forbidden.patch
> +Patch applied.
> +Applying patch..cannot-end-in-slash-.patch
> +Patch applied.
> +Applying patch..cannot_end_in_.patch
> +Patch applied.
> +Applying patch..cannot@have@the@sequence@at-brace.patch
> +Patch applied.
> +Applying patch..x.patch
> +Patch applied.
> +Applying patch..backslash-isorbidden.patch
> +Patch applied.
> +Applying patch..can-have-embedded-single-slashes.patch
> +Patch applied.
> +% git log --decorate
> +commit 434e07cacdd8e7eb4723e67cb2d100b3a4121a3a (HEAD, refs/patches/master/can-have-embedded-single-slashes.patch, guilt/master)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Can/have/embedded/single/slashes
> +
> +commit 7c3ffa4f940c862e9f11f5d4a5ae421f7a8d3141 (refs/patches/master/backslash-isorbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Backslash\is\forbidden.
> +
> +commit ea46f435d4d8f3c5349dce1aabc1a39fbf7ef803 (refs/patches/master/x.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    @
> +
> +commit a275ed5d7f10ea88c986852ee95a7d5a61663b5f (refs/patches/master/cannot@have@the@sequence@at-brace.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Cannot@{have@{the@{sequence@{at-brace.
> +
> +commit f091fee39457e64ebd35410c1cf95e6613816a54 (refs/patches/master/cannot_end_in_.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Cannot end in ..
> +
> +commit 025672497aff5c910c8ff86aaedc662f14c2f4ad (refs/patches/master/cannot-end-in-slash-.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Cannot/end/in/slash/
> +
> +commit f13e243c7c56f39422567a431bccceec8b789596 (refs/patches/master/multiple-slashes--are--forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Multiple/slashes//are//forbidden.
> +
> +commit edef5e925083d445f71c170d3293fac9619bc7a2 (refs/patches/master/openbracketisforbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Open[bracket[is[forbidden.
> +
> +commit 1626a11d979a1e9e775c766484172212277153df (refs/patches/master/asterisk-is-forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Asterisk*is*forbidden.
> +
> +commit 74df14ab3a0ec9a0382998fbf167ebb1b0a36c6a (refs/patches/master/question-mark-is-forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Question-mark?is?forbidden.
> +
> +commit ec46429125abdb0c5ac2b46cc399bdcd7cfc73fd (refs/patches/master/crisalsoforbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    CR
> is
> also
> forbidden.
> +
> +commit 01524f9921af2a041cc88c068f76baa39e436cb2 (refs/patches/master/ctrlisforbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Ctrl\x01is\x02forbidden.
> +
> +commit 9fc9677b61880f9159838e89f714893e0a2fcafb (refs/patches/master/delisforbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Del\x7fis\x7fforbidden.
> +
> +commit 10433fd7206b7f79aabb4da514710d93c8deed4a (refs/patches/master/colon_is_forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Colon:is:forbidden.
> +
> +commit fb1edb753c97ec865ceea316420b1df586caaa2b (refs/patches/master/caretisforbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Caret^is^forbidden.
> +
> +commit 3a0d5ccef0359004fcaa9cee98fbd6a2c4432e74 (refs/patches/master/tildeisforbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Tilde~is~forbidden.
> +
> +commit ea22c3b49c448dba8d7eaa6b805f9f1bc83fbedc (refs/patches/master/space_is_forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Space is forbidden.
> +
> +commit db6ea8252440b04811344336f510a5469b2ddab0 (refs/patches/master/check-multiple-.-dots-.-foo.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Check/multiple/../dots/...../foo..patch
> +
> +commit fe07105cd62660f4440ad24b9fc7dfdd9e71d764 (refs/patches/master/two_consecutive_dots_(.)_is_forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Two consecutive dots (..) is forbidden.
> +
> +commit 96a3e92c4df85f52362ce4f6d31983c462db9ae9 (refs/patches/master/a-component-may-not-end-in-foolock.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    A/component/may/not/end/in/foo.lock
> +
> +commit ee4f0f96dfc9c94f5410c1e6414f9004325a37fc (refs/patches/master/the_sequence_.lock-_is_forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    The sequence .lock/ is forbidden.
> +
> +commit fdcb23c3072209bea3d9e0a2594132b936c5347e (refs/patches/master/the_sequence_-._is_forbidden.patch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    The sequence /. is forbidden.
> +
> +commit d4850419ccc1146c7169f500725ce504b9774ed0 (tag: base, master)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    initial
> +    
> +    Signed-off-by: Commiter Name <commiter@email>
> +% git log --decorate some-branch
> +commit 589ee305a82aacf155529e75cbc84e661c37c83d (tag: some-tag, some-branch)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Del\x7fis\x7fforbidden.
> +
> +commit c077fe203fd18036fb00b56eec1763673d1769c6
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Colon:is:forbidden.
> +
> +commit ee6ef2cc9dd5525409300377b013c0d9734bd931
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Caret^is^forbidden.
> +
> +commit 70a83b705a2602a9493aba7f8f22e7abd13adc63
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Tilde~is~forbidden.
> +
> +commit 10dea8380135f4d10cd10324e13da659261ceda3
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Space is forbidden.
> +
> +commit 48eb60cddaefdaac5f78655f9028a9da741a18d1
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Check/multiple/../dots/...../foo..patch
> +
> +commit 1535e67718949abf72f843685a1672ebfe4bd21f
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    Two consecutive dots (..) is forbidden.
> +
> +commit bbf3f5926e11d97b08cdb6e833c9deb603453d1b
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    A/component/may/not/end/in/foo.lock
> +
> +commit 45e81b5163ec3ed656b058ac3fd95b8986824e0f
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    The sequence .lock/ is forbidden.
> +
> +commit eebb76e96913d2dc78aef5f233fadc74af770b3b
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    The sequence /. is forbidden.
> +
> +commit d4850419ccc1146c7169f500725ce504b9774ed0 (tag: base, master)
> +Author: Author Name <author@email>
> +Date:   Mon Jan 1 00:00:00 2007 +0000
> +
> +    initial
> +    
> +    Signed-off-by: Commiter Name <commiter@email>
> +% list_files
> +d .git/patches
> +d .git/patches/master
> +d .git/refs/patches
> +d .git/refs/patches/master
> +f 06beca7069b9e576bd431f65d13862ed5d3e2a0f  .git/patches/master/ctrlisforbidden.patch
> +f 08267ec6783ea9d1adae55b275198f7594764ed0  .git/patches/master/series
> +f 08267ec6783ea9d1adae55b275198f7594764ed0  .git/patches/master/status
> +f 09b7e9be44ae5ec3a4bb30f5ee9d4ebc2c042f64  .git/patches/master/two_consecutive_dots_(.)_is_forbidden.patch
> +f 0b971c9a17aeca2319c93d700ffd98acc2a93451  .git/patches/master/question-mark-is-forbidden.patch
> +f 2b8392f63d61efc12add554555adae30883993cc  .git/patches/master/cannot-end-in-slash-.patch
> +f 2cd7c9ad392e071be03c051c6793e9b1e31d33c4  .git/patches/master/can-have-embedded-single-slashes.patch
> +f 3136e448a4c820f6d2642f9d894c4087d3d109ab  .git/patches/master/cannot_end_in_.patch
> +f 34e07c584032df137f19bdb66d93f316f00a5ac8  .git/patches/master/tildeisforbidden.patch
> +f 49bab499826b63deb2bd704629d60c7268c57aee  .git/patches/master/the_sequence_-._is_forbidden.patch
> +f 5bcddb8ccb6e6e5e8a61e9e56cb2e0f70cbab2f5  .git/patches/master/cannot@have@the@sequence@at-brace.patch
> +f 637b982fe14a240de181ae63226b27e0c406b3dc  .git/patches/master/asterisk-is-forbidden.patch
> +f 698f8a7d41a64e3b6be1a3eba86574078b22a5f3  .git/patches/master/backslash-isorbidden.patch
> +f 7b103c3c7ae298cd2334f6f49da48bae1424f77b  .git/patches/master/crisalsoforbidden.patch
> +f 9b810b8c63779c51d2e7f61ab59cd49835041563  .git/patches/master/x.patch
> +f a22958d9ae9976fd7b2b5a9d0bcd44bf7ad9b08a  .git/patches/master/caretisforbidden.patch
> +f ab325bf5a432937fc6f231d3e8a773a62d53952b  .git/patches/master/multiple-slashes--are--forbidden.patch
> +f cb9cffbd4465bddee266c20ccebd14eb687eaa89  .git/patches/master/delisforbidden.patch
> +f d0885a1a1fdee0fd1e4fedce3f7acd3100540bc4  .git/patches/master/openbracketisforbidden.patch
> +f d2903523fb66a346596eabbdd1bda4e52b266440  .git/patches/master/check-multiple-.-dots-.-foo.patch
> +f dfc11f76394059909671af036598c5fbe33001ba  .git/patches/master/space_is_forbidden.patch
> +f e47474c52d6c893f36d0457f885a6dd1267742bb  .git/patches/master/colon_is_forbidden.patch
> +f e7a5f8912592d9891e6159f5827c8b4f372cc406  .git/patches/master/the_sequence_.lock-_is_forbidden.patch
> +f edfaa5e06bd662ae1f6a642834324fd9b849bbd9  .git/patches/master/a-component-may-not-end-in-foolock.patch
> +r 01524f9921af2a041cc88c068f76baa39e436cb2  .git/refs/patches/master/ctrlisforbidden.patch
> +r 025672497aff5c910c8ff86aaedc662f14c2f4ad  .git/refs/patches/master/cannot-end-in-slash-.patch
> +r 10433fd7206b7f79aabb4da514710d93c8deed4a  .git/refs/patches/master/colon_is_forbidden.patch
> +r 1626a11d979a1e9e775c766484172212277153df  .git/refs/patches/master/asterisk-is-forbidden.patch
> +r 3a0d5ccef0359004fcaa9cee98fbd6a2c4432e74  .git/refs/patches/master/tildeisforbidden.patch
> +r 434e07cacdd8e7eb4723e67cb2d100b3a4121a3a  .git/refs/patches/master/can-have-embedded-single-slashes.patch
> +r 74df14ab3a0ec9a0382998fbf167ebb1b0a36c6a  .git/refs/patches/master/question-mark-is-forbidden.patch
> +r 7c3ffa4f940c862e9f11f5d4a5ae421f7a8d3141  .git/refs/patches/master/backslash-isorbidden.patch
> +r 96a3e92c4df85f52362ce4f6d31983c462db9ae9  .git/refs/patches/master/a-component-may-not-end-in-foolock.patch
> +r 9fc9677b61880f9159838e89f714893e0a2fcafb  .git/refs/patches/master/delisforbidden.patch
> +r a275ed5d7f10ea88c986852ee95a7d5a61663b5f  .git/refs/patches/master/cannot@have@the@sequence@at-brace.patch
> +r db6ea8252440b04811344336f510a5469b2ddab0  .git/refs/patches/master/check-multiple-.-dots-.-foo.patch
> +r ea22c3b49c448dba8d7eaa6b805f9f1bc83fbedc  .git/refs/patches/master/space_is_forbidden.patch
> +r ea46f435d4d8f3c5349dce1aabc1a39fbf7ef803  .git/refs/patches/master/x.patch
> +r ec46429125abdb0c5ac2b46cc399bdcd7cfc73fd  .git/refs/patches/master/crisalsoforbidden.patch
> +r edef5e925083d445f71c170d3293fac9619bc7a2  .git/refs/patches/master/openbracketisforbidden.patch
> +r ee4f0f96dfc9c94f5410c1e6414f9004325a37fc  .git/refs/patches/master/the_sequence_.lock-_is_forbidden.patch
> +r f091fee39457e64ebd35410c1cf95e6613816a54  .git/refs/patches/master/cannot_end_in_.patch
> +r f13e243c7c56f39422567a431bccceec8b789596  .git/refs/patches/master/multiple-slashes--are--forbidden.patch
> +r fb1edb753c97ec865ceea316420b1df586caaa2b  .git/refs/patches/master/caretisforbidden.patch
> +r fdcb23c3072209bea3d9e0a2594132b936c5347e  .git/refs/patches/master/the_sequence_-._is_forbidden.patch
> +r fe07105cd62660f4440ad24b9fc7dfdd9e71d764  .git/refs/patches/master/two_consecutive_dots_(.)_is_forbidden.patch
> +% guilt pop -a
> +All patches popped.
> diff --git a/regression/t-034.sh b/regression/t-034.sh
> new file mode 100755
> index 0000000..f41f958
> --- /dev/null
> +++ b/regression/t-034.sh
> @@ -0,0 +1,71 @@
> +#!/bin/bash
> +#
> +# Test import-commit
> +#
> +
> +function create_commit
> +{
> +	echo $1 >> $1 &&
> +		git add $1 &&
> +		git commit -m"$2"
> +}
> +
> +source "$REG_DIR/scaffold"
> +
> +b()
> +{
> +	printf "%b" "$1"
> +}
> +
> +cmd setup_git_repo
> +
> +cmd git tag base
> +
> +# Create a series of commits whose first line of the commit message
> +# each violates one of the rules in get-check-ref-format(1).
> +
> +cmd create_commit a "The sequence /. is forbidden."
> +cmd create_commit a "The sequence .lock/ is forbidden."
> +cmd create_commit a "A/component/may/not/end/in/foo.lock"
> +cmd create_commit a "Two consecutive dots (..) is forbidden."
> +cmd create_commit a "Check/multiple/../dots/...../foo..patch"
> +cmd create_commit a "Space is forbidden."
> +cmd create_commit a "Tilde~is~forbidden."
> +cmd create_commit a "Caret^is^forbidden."
> +cmd create_commit a "Colon:is:forbidden."
> +cmd create_commit a `b 'Del\177is\177forbidden.'`
> +# Create a branch and a tag from the current commit, to ensure that
> +# doing so does not affect how the commit is imported.
> +cmd git branch some-branch
> +cmd git tag some-tag
> +cmd create_commit a `b 'Ctrl\001is\002forbidden.'`
> +cmd create_commit a `b 'CR\ris\ralso\rforbidden.'`
> +cmd create_commit a "Question-mark?is?forbidden."
> +cmd create_commit a "Asterisk*is*forbidden."
> +cmd create_commit a "Open[bracket[is[forbidden."
> +cmd create_commit a "Multiple/slashes//are//forbidden."
> +cmd create_commit a "Cannot/end/in/slash/"
> +cmd create_commit a "Cannot end in .."
> +cmd create_commit a "Cannot@{have@{the@{sequence@{at-brace."
> +cmd create_commit a "@"
> +cmd create_commit a "Backslash\\is\\forbidden."
> +
> +# Slash is sometimes allowed; this is not problematic.
> +cmd create_commit a "Can/have/embedded/single/slashes"
> +
> +cmd git log
> +
> +# Import all the commits to guilt.
> +cmd guilt init
> +cmd guilt import-commit base..HEAD
> +
> +for patch in .git/patches/master/*.patch; do
> +	touch -a -m -t "$TOUCH_DATE" "$patch"
> +done
> +
> +# If push and pop works, the names we created are good.
> +cmd guilt push -a
> +cmd git log --decorate
> +cmd git log --decorate some-branch
> +cmd list_files
> +cmd guilt pop -a
> -- 
> 1.8.3.1
> 

-- 
C is quirky, flawed, and an enormous success.
		- Dennis M. Ritchie.

  reply	other threads:[~2015-01-22 14:15 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-18 21:59 [GUILT v4 00/33] Teach guilt import-commit how to create legal patch names, and more Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 01/33] The tests should not fail if guilt.diffstat is set Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 02/33] Allow "guilt delete -f" to run from a dir which contains spaces Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 03/33] Added test case for "guilt delete -f" Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 04/33] Allow "guilt import-commit" to run from a dir which contains spaces Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 05/33] "guilt new": Accept more than 4 arguments Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 06/33] Fix the do_get_patch function Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 07/33] Added test cases for "guilt fold" Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 08/33] Added more test cases for "guilt new": empty patches Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 09/33] Test suite: properly check the exit status of commands Per Cederqvist
2015-01-22 14:27   ` Jeff Sipek
2014-05-18 21:59 ` [GUILT v4 10/33] Run test_failed if the exit status of a test script is bad Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 11/33] test suite: remove pointless redirection Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 12/33] "guilt header": more robust header selection Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 13/33] Check that "guilt header '.*'" fails Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 14/33] Use "git check-ref-format" to validate patch names Per Cederqvist
2015-01-22 14:18   ` Jeff Sipek
2014-05-18 21:59 ` [GUILT v4 15/33] Produce legal patch names in guilt-import-commit Per Cederqvist
2015-01-22 14:15   ` Jeff Sipek [this message]
2015-01-22 15:50     ` Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 16/33] Fix backslash handling when creating names of imported patches Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 17/33] "guilt graph" no longer loops when no patches are applied Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 18/33] guilt-graph: Handle commas in branch names Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 19/33] Check that "guilt graph" works when working on a branch with a comma Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 20/33] "guilt graph": Handle patch names containing quotes Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 21/33] The log.decorate setting should not influence import-commit Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 22/33] The log.decorate setting should not influence patchbomb Per Cederqvist
2014-05-18 21:59 ` [GUILT v4 23/33] The log.decorate setting should not influence guilt rebase Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 24/33] disp no longer processes backslashes Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 25/33] "guilt push" now fails when there are no more patches to push Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 26/33] "guilt pop" now fails when there are no more patches to pop Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 27/33] Minor testsuite fix Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 28/33] Fix coding style errors in t-061.sh Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 29/33] Added guilt.reusebranch configuration option Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 30/33] Added a short style guide, and Emacs settings Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 31/33] Don't use "git log -p" in the test suite Per Cederqvist
2014-05-18 22:00 ` [GUILT v4 32/33] Improved doc and tests for guilt header Per Cederqvist
2015-01-22 13:56   ` Jeff Sipek
2014-05-18 22:00 ` [GUILT v4 33/33] Document the exit status of guilt push and guilt pop Per Cederqvist
2015-01-22 14:31   ` Jeff Sipek

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150122141545.GB101460@meili.jeffnet.31bits.net \
    --to=jeffpc@josefsipek.net \
    --cc=cederp@opera.com \
    --cc=git@vger.kernel.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).