Open SsuperL opened 1 year ago
Is it possible that the git repo doesn't setup remote 🤔
I run command git remote -v
in the CI , and it shows that the remote has been setup.
Hmmm... As I'm not able to reproduce it, I don't have any clue on how we could fix it. But we can keep it open till you or someone encounter this issue again with more detail
Actually,this issue has come up again.
And when I merged the branch into master,it said that there is no commit found range origin/master..HEAD
.
Do you mean after merging back to the master branch? If that's the case, your HEAD
will on on master
so the result seem to be expected.
Do you mean after merging back to the master branch? If that's the case, your
HEAD
will on onmaster
so the result seem to be expected.
yes. Or can it skip check when there's no commit rather than make the job failed?
@SsuperL Please try cz --no-raise 3 check --rev-range master..
. it's output the message with a zero return code
https://commitizen-tools.github.io/commitizen/bump/#easy-way
cz --no-raise 3 check --rev-range master..
I'll try it.Thank you!
@SsuperL did you try to git fetch
before your command ? its seems GitLab CI dont fetch every branch
@SsuperL did you try to
git fetch
before your command ? its seems GitLab CI dont fetch every branch No, but it only appeared on some machines. And the commandgit branch -r
shows branchorigin/master
exists.
do you have remote origin
and branch master
?
do you have remote
origin
and branchmaster
?
yes.
What would be the output of git log origin/master..
? Can it generate output as expected?
What would be the output of
git log origin/master..
? Can it generate output as expected?
Oh,it didn't show anything of git log origin/master
. Maybe there's no git fetch
on some CI machines. I try git fetch origin
and it works. Thanks for your help!
@SsuperL One of the stuff I can think of is shallow clone. Maybe you could take a look at this direction as well :)
@SsuperL One of the stuff I can think of is shallow clone. Maybe you could take a look at this direction as well :)
Okay, I'll check it out.
Hi, I am having the same issue outside of CI. When I git push
with the pre-push
pre-commit hook, I get the following:
fatal: ambiguous argument 'origin/HEAD..HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Whereas if I skip the verification everything works fine.
Unfortunately the repo is private and I can't share the url, but the configs are:
default_install_hook_types:
- pre-commit
- pre-push
default_language_version:
python: python3.9
repos:
- repo: https://github.com/commitizen-tools/commitizen
rev: v2.42.1
hooks:
- id: commitizen-branch
stages: [ push ]
And the hook (which should not matter) is:
#!/usr/bin/env bash
# File generated by pre-commit: https://pre-commit.com
# ID: 138fd403232d2ddd5efb44317e38bf03
# start templated
INSTALL_PYTHON=/Users/lucabaggi/.local/share/pipx/venvs/pre-commit/bin/python
ARGS=(hook-impl --config=.pre-commit-config.yaml --hook-type=pre-push)
# end templated
HERE="$(cd "$(dirname "$0")" && pwd)"
ARGS+=(--hook-dir "$HERE" -- "$@")
if [ -x "$INSTALL_PYTHON" ]; then
exec "$INSTALL_PYTHON" -mpre_commit "${ARGS[@]}"
elif command -v pre-commit > /dev/null; then
exec pre-commit "${ARGS[@]}"
else
echo '`pre-commit` not found. Did you forget to activate your virtualenv?' 1>&2
exit 1
fi
Hi, I am having the same issue outside of CI. When I
git push
with thepre-push
pre-commit hook, I get the following:fatal: ambiguous argument 'origin/HEAD..HEAD': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
Whereas if I skip the verification everything works fine.
Unfortunately the repo is private and I can't share the url, but the configs are:
default_install_hook_types: - pre-commit - pre-push default_language_version: python: python3.9 repos: - repo: https://github.com/commitizen-tools/commitizen rev: v2.42.1 hooks: - id: commitizen-branch stages: [ push ]
And the hook (which should not matter) is:
#!/usr/bin/env bash # File generated by pre-commit: https://pre-commit.com # ID: 138fd403232d2ddd5efb44317e38bf03 # start templated INSTALL_PYTHON=/Users/lucabaggi/.local/share/pipx/venvs/pre-commit/bin/python ARGS=(hook-impl --config=.pre-commit-config.yaml --hook-type=pre-push) # end templated HERE="$(cd "$(dirname "$0")" && pwd)" ARGS+=(--hook-dir "$HERE" -- "$@") if [ -x "$INSTALL_PYTHON" ]; then exec "$INSTALL_PYTHON" -mpre_commit "${ARGS[@]}" elif command -v pre-commit > /dev/null; then exec pre-commit "${ARGS[@]}" else echo '`pre-commit` not found. Did you forget to activate your virtualenv?' 1>&2 exit 1 fi
Have you tried git fetch
? That works for me.
Have you tried git fetch ? That works for me.
Does not for me... Perhaps it can mess up if I have git push --force
previously?
Hello, if I run cz check --rev-range origin/main..HEAD
it works. I noticed that the pre-commit hook has --rev-range origin/HEAD..HEAD
which is an invalid ref. Perhaps when the repo has multiple branches the reference becomes invalid? Will try to make a reprex soon.
The following fixed it for me:
git remote set-head origin -a
Eventually found a semi-good explanation at: https://learnku.com/articles/71493
(My issue is actually when I'm trying to run git push
with the pre-push hook enabled, which then gives a similar error on ambiguity.)
Checking older or related issues to access the tool's status.
Access master
branch on GitLab CI : Only the current branch commits are accessible + shallow history, fetching is needed for any branch
The number of changes to fetch from GitLab when cloning a repository. Lower values can speed up pipeline execution. Set to 0 or blank to fetch all branches and tags for each job
(default: 50)*_SHA
variables are the ones for detecting the commit's / pipeline's contextThe CI_COMMIT_BEFORE_SHA
variable can be used to compare a CI with the previously pushed commit, but handlings are needed:
000..
in specific cases, and might be unknown if the commit was amended and force-pushedorigin/HEAD..HEAD
push issues : #1209
Description
Run
cz check --range origin/master..HEAD
to check commits in CI occasionally fails. And it worked after I retried the job.But sometimes it didn't work after retrying multiple times. I couldn't find out the reason ,Steps to reproduce
lint: retry: 1 script:
Current behavior
cz check --rev-range origin/master..HEAD
failed. Outputs attached below:Desired behavior
cz check --rev-range
can run successfully in gitlab CI.Screenshots
Environment
commitizen version: 2.34.0 python version: 3.7.5 operating system: Linux