 5ee0d624fb
			
		
	
	5ee0d624fb
	
	
	
		
			
			The Git CodingGuidelines prefer the $(...) construct for command
substitution instead of using the backquotes `...`.
The backquoted form is the traditional method for command
substitution, and is supported by POSIX.  However, all but the
simplest uses become complicated quickly.  In particular, embedded
command substitutions and/or the use of double quotes require
careful escaping with the backslash character.
The patch was generated by:
for _f in $(find . -name "*.sh")
do
	perl -i -pe 'BEGIN{undef $/;} s/`(.+?)`/\$(\1)/smg'  "${_f}"
done
and then carefully proof-read.
Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			269 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			269 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='pushing to a mirror repository'
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| D=$(pwd)
 | |
| 
 | |
| invert () {
 | |
| 	if "$@"; then
 | |
| 		return 1
 | |
| 	else
 | |
| 		return 0
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| mk_repo_pair () {
 | |
| 	rm -rf master mirror &&
 | |
| 	mkdir mirror &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		git init &&
 | |
| 		git config receive.denyCurrentBranch warn
 | |
| 	) &&
 | |
| 	mkdir master &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		git init &&
 | |
| 		git remote add $1 up ../mirror
 | |
| 	)
 | |
| }
 | |
| 
 | |
| 
 | |
| # BRANCH tests
 | |
| test_expect_success 'push mirror creates new branches' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/heads/master) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/heads/master) &&
 | |
| 	test "$master_master" = "$mirror_master"
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror updates existing branches' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git push --mirror up &&
 | |
| 		echo two >foo && git add foo && git commit -m two &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/heads/master) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/heads/master) &&
 | |
| 	test "$master_master" = "$mirror_master"
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror force updates existing branches' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git push --mirror up &&
 | |
| 		echo two >foo && git add foo && git commit -m two &&
 | |
| 		git push --mirror up &&
 | |
| 		git reset --hard HEAD^
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/heads/master) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/heads/master) &&
 | |
| 	test "$master_master" = "$mirror_master"
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror removes branches' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git branch remove master &&
 | |
| 		git push --mirror up &&
 | |
| 		git branch -D remove
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		invert git show-ref -s --verify refs/heads/remove
 | |
| 	)
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror adds, updates and removes branches together' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git branch remove master &&
 | |
| 		git push --mirror up &&
 | |
| 		git branch -D remove &&
 | |
| 		git branch add master &&
 | |
| 		echo two >foo && git add foo && git commit -m two &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/heads/master) &&
 | |
| 	master_add=$(cd master && git show-ref -s --verify refs/heads/add) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/heads/master) &&
 | |
| 	mirror_add=$(cd mirror && git show-ref -s --verify refs/heads/add) &&
 | |
| 	test "$master_master" = "$mirror_master" &&
 | |
| 	test "$master_add" = "$mirror_add" &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		invert git show-ref -s --verify refs/heads/remove
 | |
| 	)
 | |
| 
 | |
| '
 | |
| 
 | |
| 
 | |
| # TAG tests
 | |
| test_expect_success 'push mirror creates new tags' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	test "$master_master" = "$mirror_master"
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror updates existing tags' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up &&
 | |
| 		echo two >foo && git add foo && git commit -m two &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	test "$master_master" = "$mirror_master"
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror force updates existing tags' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up &&
 | |
| 		echo two >foo && git add foo && git commit -m two &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up &&
 | |
| 		git reset --hard HEAD^
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	test "$master_master" = "$mirror_master"
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror removes tags' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git tag -f tremove master &&
 | |
| 		git push --mirror up &&
 | |
| 		git tag -d tremove
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		invert git show-ref -s --verify refs/tags/tremove
 | |
| 	)
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'push mirror adds, updates and removes tags together' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git tag -f tremove master &&
 | |
| 		git push --mirror up &&
 | |
| 		git tag -d tremove &&
 | |
| 		git tag tadd master &&
 | |
| 		echo two >foo && git add foo && git commit -m two &&
 | |
| 		git tag -f tmaster master &&
 | |
| 		git push --mirror up
 | |
| 	) &&
 | |
| 	master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	master_add=$(cd master && git show-ref -s --verify refs/tags/tadd) &&
 | |
| 	mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
 | |
| 	mirror_add=$(cd mirror && git show-ref -s --verify refs/tags/tadd) &&
 | |
| 	test "$master_master" = "$mirror_master" &&
 | |
| 	test "$master_add" = "$mirror_add" &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		invert git show-ref -s --verify refs/tags/tremove
 | |
| 	)
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'remote.foo.mirror adds and removes branches' '
 | |
| 
 | |
| 	mk_repo_pair --mirror &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git branch keep master &&
 | |
| 		git branch remove master &&
 | |
| 		git push up &&
 | |
| 		git branch -D remove
 | |
| 		git push up
 | |
| 	) &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		git show-ref -s --verify refs/heads/keep &&
 | |
| 		invert git show-ref -s --verify refs/heads/remove
 | |
| 	)
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'remote.foo.mirror=no has no effect' '
 | |
| 
 | |
| 	mk_repo_pair &&
 | |
| 	(
 | |
| 		cd master &&
 | |
| 		echo one >foo && git add foo && git commit -m one &&
 | |
| 		git config --add remote.up.mirror no &&
 | |
| 		git branch keep master &&
 | |
| 		git push --mirror up &&
 | |
| 		git branch -D keep &&
 | |
| 		git push up :
 | |
| 	) &&
 | |
| 	(
 | |
| 		cd mirror &&
 | |
| 		git show-ref -s --verify refs/heads/keep
 | |
| 	)
 | |
| 
 | |
| '
 | |
| 
 | |
| test_done
 |