1

We have gitolite and it keeps complaining an existing repository doesn't exist.

Even after I edited gitolite.conf and removed that repo from the config.
So I'm wondering why it 'remembers' that repo?

I checked my changes were pushed correctly.
The $gituser/.gitolite/conf/gitolite.conf is equal to my local one.

The message doesn't come from the gitolite.pm script, the exact error message is

remote: fatal: Not a git repository: '/Users/git/repositoires/IJslander.git'

For example when committing the gitolite-admin repo:

$ git commit -a -m "bogus space"
[master 675b4e1] bogus space
 1 files changed, 2 insertions(+), 2 deletions(-)
$ git push
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 360 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: fatal: Not a git repository: '/Users/git/repositoires/IJslander.git'
To git@redacted.com:gitolite-admin
   935c304..675b4e1  master -> master

And I have greped the whole HDD and nowhere does it mention that repo (but it did mention a new one we tried to make to replace it):

~ git$ grep -ilR "IJslander" . 2> /dev/null 
./.bash_history
./.gitolite/conf/gitolite.conf
./.gitolite/conf/gitolite.conf-compiled.pm
./.gitolite/logs/gitolite-2011-07.log
./.gitolite/logs/gitolite-2011-08.log

And this is from the conf:

~ git$ grep -iR "IJslander" .gitolite/conf/gitolite.conf 2> /dev/null 
repo    ijslander-ios
//the compiled conf file
~ git$ grep -iR "IJslander" .gitolite/conf/gitolite.conf-compiled.pm 2> /dev/null 
'ijslander-ios' => {

All repos are under git's ~

4

3 に答える 3

2

The message should be from the gitolite.pm script:

# ----------------------------------------------------------------------------
#       getperms and setperms
# ----------------------------------------------------------------------------

sub get_set_perms
{
    my($repo_base_abs, $repo, $verb, $user) = @_;
    my ($creater, $dummy, $dummy2) = &repo_rights($repo_base_abs, $repo, "");
    die "$repo doesnt exist or is not yours\n" unless $user eq $creater;

You could modify the script on the server to at least display the repo and the other variables on the "die" message, and see that way what repo it still consider.

于 2011-07-22T17:49:28.380 に答える
2

I believe that message is generated from git itself, not gitolite. Check your .git/config file in the repository you're running it from, and erase the appropriate entry. Alternately, try running git remote rm <name>.

于 2011-08-09T17:06:15.760 に答える
2

I had the same problem.. just backup my repository at server-side, uninstall gitolite completely, ref here and re-install gitolite

于 2011-08-12T16:23:58.577 に答える