I'd like to push my code to Gerrit. I added these lines in my ~/.gitconfig
[remote "origin"]
url = ssh://hxx#www.xxxx.com:29418/project/cloud
fetch = +refs/heads/*:refs/remotes/origin/*
push = refs/heads/*:refs/for/*
When I push in my source tree, I got error:
'git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v origin refs/heads/master:refs/heads/refs/for/master
Pushing to ssh://hxx#www.xxxx.com:29418/project/cloud
remote:
remote: Processing changes: refs: 1
remote: Processing changes: refs: 1, done
To ssh://hxx#www.xxxx.com:29418/project/cloud
! [remote rejected] master -> refs/for/master (prohibited by Gerrit)
error: failed to push some refs to
ssh://hxx#www.xxxx.com:29418/project/cloud
Pushing to ssh://hxx#www.xxxx.com:29418/project/cloud
remote:
remote: Processing changes: refs: 1
remote: Processing changes: refs: 1, done
To ssh://hxx#www.xxxx.com:29418/project/cloud! [remote rejected] master ->
refs/for/master (prohibited by Gerrit)
error: failed to push some refs to ssh://hxx#www.xxxx.com:29418/project/cloud
Completed with errors, see above
It seems my sourcetree send push command twice. also the command is incorrect:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v origin refs/heads/master:refs/heads/refs/for/master
It seems the correct command should be:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v origin master:refs/for/master
where is my mistake in my configuration?
Thanks in advance.
Don't worry, "refs/heads/master" and "master" points to the same commit. This is not the issue. Looking to the "To ssh://hxx#www.xxxx.com:29418/project/cloud! [remote rejected] master ->refs/for/master (prohibited by Gerrit)" error message, it seems that you do not have permission in Gerrit to create changes on this repository. Check your permissions.
Related
I'm facing the same issue as mentioned here
ERROR: Error cloning remote repo 'origin'
I'm getting this issue when it is triggered as a downstream job (triggered from another job / Upstream). I'm still be able to make it work by rebuilding the build / manually triggering the build but I don't understand how.
Also Tried giving Git tool chain explicitly in the configuration, but this doesn't have any effect on the build (resolving the above issue)
PFB Code Block:
12:43:55 > /usr/bin/git fetch --tags --force --progress -- <ssh git repo link> +refs/heads/*:refs/remotes/origin/* # timeout=10
12:45:11 ERROR: Error cloning remote repo 'origin'
12:45:11 hudson.plugins.git.GitException: Command "/usr/bin/git fetch --tags --force --progress -- <ssh git repo link> +refs/heads/*:refs/remotes/origin/*" returned status code 128:
12:45:11 stdout:
12:45:11 stderr: remote: Counting objects: 12277, done
remote: Compressing objects: 1% (47/4605)
remote: Compressing objects: 2% (93/4605)
.
.
12:45:11 Receiving objects: 100% (12277/12277), 1012.00 KiB | 525.00 KiB/s
Receiving objects: 100% (12277/12277), 1.55 MiB | 731.00 KiB/s, done.
12:45:11 fatal: unable to open .git/objects/pack/tmp_pack_9xXtjN: No such file or directory
12:45:11 fatal: index-pack failed
Whenever I type any brew install command into the terminal I always get the same error:
==> Tapping homebrew/cask
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 659774, done.
remote: Counting objects: 100% (338/338), done.
remote: Compressing objects: 100% (170/170), done.
error: 6957 bytes of body are still expected.31 MiB | 4.20 MiB/s
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
Error: Failure while executing; `git clone https://github.com/Homebrew/homebrew-cask /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask --origin=origin --template=` exited with 128.
Is there anyway of fixing it? (I have tried uninstalling and reinstalling homebrew and other methods)
That is basically git clone issue, try turn off the compression to see it helps.
git config --global core.compression 0
I'm using Gerrit-2.16.17 as a code review tool and need to configure server side hooks to validate the commit message when a commit is received by Gerrit for code review to (refs/for/branch).
We need to follow the below custom commit message. If suppose the below contents are not present in our commit message. Gerrit automatically need to be rejected before a review request is gets created.
Feature Ver:
Bug-ID:
Task:
Test result:
According to this Document to validate incoming commits, On the server side $GERRIT_SITE/hooks/commit-received custom hook needs to be created. Is there any pre-script is available to validate our commit message? Need help to configure/enforce this hook on server side.
Here an example of commit-received hook:
#!/usr/bin/env bash
echo $#
echo Project: $2
echo Refname: $4
echo Uploader: $6
echo Uploader-username: $8
if [[ $2 = "test" ]]
then
exit 0
else
exit -1
fi
Following an example of successful push on the test repository:
➜ test git:(master) git push origin HEAD:refs/for/master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Processing changes: refs: 1, updated: 1, done
remote: commit b2f0e7d: --project test --refname refs/heads/master --uploader Administrator <admin#example.com> --uploader-username admin --oldrev 9d4768e749448cbf10c9e4a1297f4ac206ea9e84 --newrev b2f0e7d920f35719cfa4a9bb5c5d2d54d6dad768 --cmdref refs/for/master
remote: Project: test
remote: Refname: refs/heads/master
remote: Uploader: Administrator <admin#example.com>
remote: Uploader-username: admin
remote:
remote: SUCCESS
remote:
remote: http://localhost:8080/c/test/+/41 Testina
remote:
To ssh://localhost:29418/test
* [new reference] HEAD -> refs/for/master
And a failing push on the shouldfail repository:
➜ shouldfail git:(master) git push origin HEAD:refs/for/master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Writing objects: 100% (3/3), 274 bytes | 274.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Processing changes: refs: 1, done
To ssh://localhost:29418/shouldfail
! [remote rejected] HEAD -> refs/for/master (commit 9addd6c: --project shouldfail --refname refs/heads/master --uploader Administrator <admin#example.com> --uploader-username admin --oldrev 6fcf316d435687e9138f4d63e228bdeafd40daae --newrev 9addd6c796fce09d187d90251b32b152530e8a4b --cmdref refs/for/master
Project: shouldfail
Refname: refs/heads/master
Uploader: Administrator <admin#example.com>
Uploader-username: admin)
error: failed to push some refs to 'ssh://localhost:29418/shouldfail'
I wrote the example in bash, but you can use any scripting language.
Note the everything you will print in the hook server-side, will b displayed client-side.
I would like to migrate a repo from server-A to server-B, here is my procedure:
"git clone --mirror" a repo, named test from server-A
$ git clone --mirror ssh://my.name#10.58.65.50:29418/test
Cloning into bare repository 'test.git'...
remote: Counting objects: 1836, done
remote: Finding sources: 100% (1829/1829)
remote: Total 2758 (delta 377), reused 2664 (delta 377)
Receiving objects: 100% (2758/2758), 1.28 MiB | 0 bytes/s, done.
Resolving deltas: 100% (949/949), done.
Checking connectivity... done.
Create an empty repo (test) on server-B
"git push --mirror" the repo (test) to server-B
git push was failed, and the error log is listed as below:
$ git push --mirror ssh://my.name#10.58.65.51:29418/test
Counting objects: 2661, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1713/1713), done.
Writing objects: 100% (2661/2661), 1.25 MiB | 0 bytes/s, done.
Total 2661 (delta 921), reused 2661 (delta 921)
remote: Resolving deltas: 100% (921/921)
remote: Processing changes: refs: 352, done
To ssh://my.name#10.58.65.51:29418/test
! [remote rejected] master -> master (cannot combine normal pushes and magic pushes)
! [remote rejected] refs/meta/config -> refs/meta/config (cannot combine normal pushes and magic pushes)
! [remote rejected] refs/changes/00/12100/1 -> refs/changes/00/12100/1 (cannot combine normal pushes and magic pushes)
error: failed to push some refs to 'ssh://my.name#10.58.65.51:29418/test'
I have no idea of this error and how could I solve that?
Thanks!
1-Clone the empty repository from server B( make sure to clone it with commit msg)
2-Copy all your files from the 'A' server repository (except the .git file) to your empty 'B' server repository.
3-In your 'B' server repository run git add .
then git commit -m 'your commit message'
And then lastly git push origin HEAD:refs/for/master'
I tried many time to clone this url
git clone https://github.com/CocoaPods/Specs.git
But it shows like the following, how to fix this issue? Please help me.
$ /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress
Cloning into 'master'...
remote: Counting objects: 1082703, done.
remote: Compressing objects: 100% (279/279), done.
Receiving objects: 2% (25216/1082703), 5.03 MiB | 16.00 KiB/s
Sometime it may breaking like after 50% completed and also showing following error
error: RPC failed; curl 56 SSLRead() return error -9806 MiB/s
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
If you only need the most recent version, try
git clone --depth=1 https://github.com/CocoaPods/Specs.git
It will decrease the size to 1/3.
Also, depending on your network condition, a proxy might help.