2013/5/28 Allan McRae <allan@archlinux.org>:
On 28/05/13 02:08, Techlive Zheng wrote:
--- A task has also been added:
Am I missing something completely here? Does not specifying "ref=" etc in the URL build from HEAD? Noop, "branch=HEAD' won't work, git clone --mirror will set the 'HEAD' ref correctly, but next time, 'git fetch' won't.
You will need to explain what you are trying to do.
Allan
scripts/makepkg.sh.in | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index c27c74d..cd7ed48 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -557,6 +557,9 @@ download_git() { if ! git fetch --all -p; then # only warn on failure to allow offline builds warning "$(gettext "Failure while updating %s %s repo")" "${repo}" "git" + else + git fetch origin HEAD + echo "$(git rev-parse FETCH_HEAD)" > HEAD In the case of fetching in an existed git source, we need to hack a bit to make sure the HEAD is correctly set. fi fi } @@ -597,6 +600,9 @@ extract_git() { branch) ref=origin/${fragment##*=} ;; + HEAD) + ref=HEAD + ;; None of 'branch=','commit=','tag=' works for HEAD correctly, we need to handle HEAD separately. *) error "$(gettext "Unrecognized reference: %s")" "${fragment}" plain "$(gettext "Aborting...")" @@ -604,6 +610,8 @@ extract_git() { esac fi
+ ref=$(git rev-parse "$ref") + Instead of use 'branch/*' something, it is always better to directly use commit hash. if [[ -n $ref ]]; then if ! git checkout -b makepkg $ref; then error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git"