partial-copy would not propagate deletes; fixed
This commit is contained in:
parent
fb9829a698
commit
53543ee3e6
|
@ -127,22 +127,28 @@ Here's how:
|
||||||
|
|
||||||
repo foo-partialcopy-1
|
repo foo-partialcopy-1
|
||||||
- secret-branch = @temp-emp
|
- secret-branch = @temp-emp
|
||||||
# other rules should ensure ONLY @temp-emp has ANY ACCESS
|
|
||||||
# NO other user should have access
|
# other rules; see notes below
|
||||||
|
|
||||||
- VREF/partial-copy = @all
|
- VREF/partial-copy = @all
|
||||||
config gitolite.partialCopyOf = foo
|
config gitolite.partialCopyOf = foo
|
||||||
|
|
||||||
**IMPORTANT**: if you're using other VREFs, please make sure this one is
|
**IMPORTANT NOTES**:
|
||||||
placed at the end, after all the others.
|
|
||||||
|
* if you're using other VREFs, **make sure** this one is placed at the
|
||||||
|
end, after all the others.
|
||||||
|
|
||||||
|
* remember that any change allowed to be made to the partial-copy repo
|
||||||
|
will propagate to the main repo so make sure you use other rules to
|
||||||
|
restrict pushes to other branches and tags as needed.
|
||||||
|
|
||||||
And that should be it. **Please test it and let me know if it doesn't work!**
|
And that should be it. **Please test it and let me know if it doesn't work!**
|
||||||
|
|
||||||
WARNINGS:
|
WARNINGS:
|
||||||
|
|
||||||
* If you change the config to disallow something that used to be allowed,
|
* If you change the config to disallow something that used to be allowed,
|
||||||
you should delete the partial repo on the server and then run 'gitolite
|
you should delete the partial repo on the server and then run `gitolite
|
||||||
compile' to let it build again. See t/partial-copy.t for details.
|
compile; gitolite trigger POST_COMPILE` to let it build again.
|
||||||
|
|
||||||
* Not tested with smart http; probably won't work.
|
* Not tested with smart http; probably won't work.
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,15 @@ main=`git config --file $GL_REPO_BASE/$repo.git/config --get gitolite.partialCop
|
||||||
rand=$$
|
rand=$$
|
||||||
export GL_BYPASS_ACCESS_CHECKS=1
|
export GL_BYPASS_ACCESS_CHECKS=1
|
||||||
|
|
||||||
|
if [ "$new" = "0000000000000000000000000000000000000000" ]
|
||||||
|
then
|
||||||
|
# special case for deleting a ref (this is why it is important to put this
|
||||||
|
# VREF as the last one; if we got this far he is allowed to delete it)
|
||||||
|
git push -f $GL_REPO_BASE/$main.git :$ref || die "FATAL: failed to delete $ref"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
git push -f $GL_REPO_BASE/$main.git $new:refs/partial/br-$rand || die "FATAL: failed to send $new"
|
git push -f $GL_REPO_BASE/$main.git $new:refs/partial/br-$rand || die "FATAL: failed to send $new"
|
||||||
|
|
||||||
cd $GL_REPO_BASE/$main.git
|
cd $GL_REPO_BASE/$main.git
|
||||||
|
|
Loading…
Reference in a new issue