 e44f15ba3e
			
		
	
	e44f15ba3e
	
	
	
		
			
			The annotations emitted by chainlint to indicate detected problems are overly terse, so much so that developers new to the project -- those who should most benefit from the linting -- may find them baffling. For instance, although the author of chainlint and seasoned Git developers may understand that "?!AMP?!" is an abbreviation of "ampersand" and indicates a break in the &&-chain, this may not be obvious to newcomers. The "?!LOOP?!" case is particularly serious because that terse single word does nothing to convey that the loop body should end with "|| return 1" (or "|| exit 1" in a subshell) to ensure that a failing command in the body aborts the loop immediately. Moreover, unlike &&-chaining which is ubiquitous in Git tests, the "|| return 1" idiom is relatively infrequent, thus may be harder for a newcomer to discover by consulting nearby code. Address these shortcomings by emitting human-readable messages which both explain the problem and give a strong hint about how to correct it. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			28 lines
		
	
	
		
			796 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			796 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 2 git config filter.rot13.smudge ./rot13.sh &&
 | |
| 3 git config filter.rot13.clean ./rot13.sh &&
 | |
| 4 
 | |
| 5 {
 | |
| 6     echo "*.t filter=rot13" ?!LINT: missing '&&'?!
 | |
| 7     echo "*.i ident"
 | |
| 8 } >.gitattributes &&
 | |
| 9 
 | |
| 10 {
 | |
| 11     echo a b c d e f g h i j k l m ?!LINT: missing '&&'?!
 | |
| 12     echo n o p q r s t u v w x y z ?!LINT: missing '&&'?!
 | |
| 13     echo '$Id$'
 | |
| 14 } >test &&
 | |
| 15 cat test >test.t &&
 | |
| 16 cat test >test.o &&
 | |
| 17 cat test >test.i &&
 | |
| 18 git add test test.t test.i &&
 | |
| 19 rm -f test test.t test.i &&
 | |
| 20 git checkout -- test test.t test.i &&
 | |
| 21 
 | |
| 22 echo "content-test2" >test2.o &&
 | |
| 23 echo "content-test3 - filename with special characters" >"test3 'sq',$x=.o" ?!LINT: missing '&&'?!
 | |
| 24 
 | |
| 25 downstream_url_for_sed=$(
 | |
| 26 	printf "%sn" "$downstream_url" |
 | |
| 27 	sed -e 's/\/\\/g' -e 's/[[/.*^$]/\&/g'
 | |
| 28 )
 |