lowitea / gitlobster

🦞 A tool for full cloning all available repositories from a GitLab instance.
Apache License 2.0
39 stars 1 forks source link

Missing master Branch prevents cloning #209

Open shexbeer opened 5 months ago

shexbeer commented 5 months ago

Hi,

in my gitlab instance, i got some projects which are missing a master branch. They dont have any branches at all. When i clone all the repos in gitlab, i get an error:

2024-02-05T15:44:00.825747Z  WARN gitlobster::git: git exit status not success
Error: git error: No tracking information for the current branch.
Please specify the branch you want to merge.
See git-pull(1) for more details.
git pull <Remote-Repository> <Branch>

If you want to set tracking information for this branch, you can do so with:
git branch --set-upstream-to=upstream/<Branch> master

Also downloading with HTTPS does not help. I want that this project is just exluded from clone, with an error message.

Also in dry-run, everything seems fine. So there is no check for that.

lowitea commented 5 months ago

Hi! Thank you for this report. I will try to fix it soon.

For now, you can use the --exclude flag and manually list projects without a master branch.

lowitea commented 4 months ago

Hi @shexbeer Sorry, but i couldn't reproduce the bug I have blank repo without any branches https://gitlab.com/gitlobster_test/example/blank_project This repository is ignored while cloning Could you please give detailed steps for reproducing and provide a complete log with -vv flags?

han911976 commented 4 months ago

image

Hi, not sure is this information helps. When I tried to clone some repo from a self-hosted gitLab instance, I was able to clone and fail some. I think this is because some repo I am cloning are created before an update made by gitlab, changing the default branch name from master to main. Therefore, some repo with master branch could clone from server but not the main one. I think in order to reproduce this, we may try to have a branch with a default branch with any name other than master.

some log messages are included below for reference

←[2m2024-02-16T08:03:33.339382Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project1 pull upstream main
←[2m2024-02-16T08:03:33.351296Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project2 pull upstream main
←[2m2024-02-16T08:03:33.360118Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project3 branch -D master
←[2m2024-02-16T08:03:33.371430Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project4 branch -D remotes/origin/HEAD -> origin/master
←[2m2024-02-16T08:03:33.390485Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project5 branch --track master remotes/upstream/master
←[2m2024-02-16T08:03:33.416338Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project6 branch -D branch_1
←[2m2024-02-16T08:03:33.445330Z←[0m ←[32m INFO←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git -C <path>/project7 branch -la
←[2m2024-02-16T08:03:33.517483Z←[0m ←[33m WARN←[0m ←[2mgitlobster::git←[0m←[2m:←[0m git exit status not success
←[2m2024-02-16T08:03:33.522113Z←[0m ←[35mTRACE←[0m ←[2mhyper::proto::h1::dispatch←[0m←[2m:←[0m client tx closed
←[2m2024-02-16T08:03:33.522237Z←[0m ←[35mTRACE←[0m ←[2mhyper::proto::h1::conn←[0m←[2m:←[0m State::close_read()
←[2m2024-02-16T08:03:33.522672Z←[0m ←[35mTRACE←[0m ←[2mhyper::proto::h1::conn←[0m←[2m:←[0m State::close_write()
←[2m2024-02-16T08:03:33.523023Z←[0m ←[35mTRACE←[0m ←[2mhyper::proto::h1::conn←[0m←[2m:←[0m flushed({role=client}): State { reading: Closed, writing: Closed, keep_alive: Disabled }
←[2m2024-02-16T08:03:33.523858Z←[0m ←[35mTRACE←[0m ←[2mhyper::proto::h1::conn←[0m←[2m:←[0m shut down IO complete
Error: git error: error: branch 'remotes/origin/HEAD -> origin/master' not found
lowitea commented 2 months ago

I apologize for the delay. I have just released a new version with a fix that might help. Please try version 1.4.3.