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 |