diff options
| -rwxr-xr-x | bin/pkg | 22 | ||||
| -rw-r--r-- | man/5/pkg.conf | 9 | 
2 files changed, 24 insertions, 7 deletions
@@ -82,6 +82,7 @@ if [[ -f $HOME/.pkg.conf ]] {  : ${SILENT=0}  : ${DEBUG=0}  : ${AUTOUPDATE=1} +: ${GIT_USE_ORIGIN=1}  export PDIR  export PKG_ROOT @@ -251,13 +252,23 @@ function vcs_upgrade {  			" -> skipping repo, please fix manually or report a bug"  		return 1  	} -	git pull $PKG_ROOT/${PWD:t} master -	vcs_fix_origin +	if ((GIT_USE_ORIGIN)) { +		# the package might be newly created and not have an origin yet +		vcs_fix_origin +		git pull +	} else { +		git pull $PKG_ROOT/${PWD:t} master +	}  }  function vcs_push { -	git push $PKG_ROOT/${PWD:t} master -	vcs_fix_origin +	if ((GIT_USE_ORIGIN)) { +		# see above +		vcs_fix_origin +		git push +	} else { +		git push $PKG_ROOT/${PWD:t} master +	}  }  function vcs_status { @@ -266,12 +277,10 @@ function vcs_status {  # Set the correct origin  function vcs_fix_origin { -	[[ $1 == rewrite ]] && git remote rm origin  	if [[ ! -r .git/remotes/origin && ! -r .git/refs/remotes/origin/HEAD ]] {  		fgrep '[remote "origin"]' .git/config &> /dev/null ||  			git remote add origin $PKG_ROOT/${PWD:t}  	} -	git remote update &> /dev/null  } @@ -714,7 +723,6 @@ function pkg_refresh {  		info "Cleaning build diroctery\n"  		make clean  	} -	vcs_fix_origin  	global_hook $1 post-update  } diff --git a/man/5/pkg.conf b/man/5/pkg.conf index f3b4dbe..9394481 100644 --- a/man/5/pkg.conf +++ b/man/5/pkg.conf @@ -45,6 +45,15 @@ Operate in debug mode if 1  If 1, automatically execute 'pkg update' before 'pkg push'  and 'pkg remote-update' before 'pkg upgrade' +=item B<GIT_USE_ORIGIN>=I<boolean> (1) + +By default, pkg will simply issue a git push/pull, so that git will use the +repository's origin to determine where to push/pull. + +If you regularly change your PKG_ROOT, are too lazy to properly configure your +git repos or whatever, set this to 0. Then, pkg will always call git pull/push +with both the remote repo and the branch as arguments. +  =item B<function pkg_hook_>I<hook> {I<content>}  Define the global hook I<hook>, its I<content> will be executed  | 
