2012-07-31 49 views
0

我已經安裝在Ubuntu最新版本gitolite的:Gitolite - 添加新的公鑰 - 無法用符號鏈接

我跑

gitolite setup -pk user2.pub 

我得到的錯誤是:

FATAL: could not symlink /home/git/.gitolite/hooks/common/update to MyRepository. 
git/hooks 
    at /home/git/gitolite/src/lib/Gitolite/Conf/Store.pm line 330 

上正在發生的事情有什麼想法?


編輯: 好了 - 這樣的目錄

MyRepository.git/hooks 

不存在。只有

MyRepository.git/.git/hooks/ 

gitolite是怎麼回事?

+0

你有寫權限? – Paladin 2012-07-31 12:33:22

+0

我測試過給出symlink 777權限的源和目標 - 仍然是同樣的錯誤。 – hawkeye 2012-07-31 12:49:37

+0

好吧..它通常有助於再次安裝它^ _ ^,但我知道這不是一種你正在尋找的建議.. – Paladin 2012-07-31 13:29:06

回答

1

store_common()包括:

# override/propagate gitolite defined hooks for all repos 
ln_sf("$rc{GL_ADMIN_BASE}/hooks/common", "*", "$repo.git/hooks"); 

這反過來,調用ln_sf()

sub ln_sf { 
    trace(3, @_); 
    my ($srcdir, $glob, $dstdir) = @_; 
    for my $hook (glob("$srcdir/$glob")) { 
     $hook =~ s/$srcdir\///; 
     unlink "$dstdir/$hook"; 
     symlink "$srcdir/$hook", "$dstdir/$hook" or croak "could not symlink $srcdir/$hook to $dstdir\n"; 
    } 
} 

dstdir在這裏似乎不完整的。它應該是/home/git/repositories/MyRepository.git/hooks

這可能是因爲anc不正確的初始設置。

+0

對我來說是一個不完整的設置(在我的庫文件夾中的普通的Git回購出於某種原因) – kritzikratzi 2013-06-03 01:23:02

+0

子ln_sf包含此行「符號鏈接‘$ SRCDIR/$掛鉤’,‘$ dstdir/$鉤’或發牢騷」不能將$ srcdir/$ hook符號鏈接到$ dstdir \ n「;」。這裏什麼是符號鏈接?它是一個Linux命令或另一個Perl函數? – 2015-02-19 11:20:34

+0

@sdram perl函數(http://perldoc.perl.org/functions/symlink.html,http://perldoc.perl.org/functions/unlink.html) – VonC 2015-02-19 11:42:54

0

我試圖將舊版本庫導入gitolite時看到了上述錯誤。

的gitolite庫目錄中包含的‘裸’庫的「git的」文件夾中。這意味着,如果一個要導入一個倉庫到gitolite,他應​​該做到以下幾點:
- 可以肯定的oldrepo是裸git倉庫
- 運行folloeing作爲gtolite用戶

cd $HOME 
cp -R oldrepo/.git repositories/oldrepo.git 
gitolite setup 

我錯誤的是將舊版本庫作爲包含「.git」的目錄。我發現這是錯誤的。

例如我的老倉庫:

os-HP /home/gitrepo/repositories $ ll scripts/.git/ 
total 52 
drwxrwsrwx 8 gitrepo gitrepo 4096 Jan 25 10:59 . 
drwxrwsrwx 3 gitrepo gitrepo 4096 Jul 26 15:48 .. 
drwxrwsrwx 2 gitrepo gitrepo 4096 Jan 25 10:49 branches 
-rwxrwxrwx 1 gitrepo gitrepo 8 Jan 25 10:53 COMMIT_EDITMSG 
-rw-rw-r-- 1 gitrepo gitrepo 91 Jan 25 10:59 config 
-rwxrwxrwx 1 gitrepo gitrepo 73 Jan 25 10:49 description 
-rwxrwxrwx 1 gitrepo gitrepo 23 Jan 25 10:49 HEAD 
drwxrwsrwx 2 gitrepo gitrepo 4096 Jan 25 10:49 hooks 
-rwxrwxrwx 1 gitrepo gitrepo 264 Jan 25 10:53 index 
drwxrwsrwx 2 gitrepo gitrepo 4096 Jan 25 10:49 info 
drwxrwsrwx 3 gitrepo gitrepo 4096 Jan 25 10:52 logs 
drwxrwsrwx 133 gitrepo gitrepo 4096 Jun 28 08:50 objects 
drwxrwsrwx 4 gitrepo gitrepo 4096 Jan 25 10:49 refs 

相較於隨機附帶gitolite測試庫:

ey ~/repositories $ ll testing.git/ 
total 40 
drwx------ 7 gitrepo gitrepo 4096 Jul 26 02:37 . 
drwx------ 5 gitrepo gitrepo 4096 Jul 26 08:46 .. 
drwx------ 2 gitrepo gitrepo 4096 Jul 26 02:37 branches 
-rw------- 1 gitrepo gitrepo 66 Jul 26 02:37 config 
-rw------- 1 gitrepo gitrepo 0 Jul 26 05:16 git-daemon-export-ok 
-rw------- 1 gitrepo gitrepo 120 Jul 26 05:16 gl-conf 
-rw------- 1 gitrepo gitrepo 23 Jul 26 02:37 HEAD 
drwx------ 2 gitrepo gitrepo 4096 Jul 26 05:13 hooks 
drwx------ 2 gitrepo gitrepo 4096 Jul 26 02:37 info 
drwx------ 10 gitrepo gitrepo 4096 Jul 26 03:05 objects 
drwx------ 4 gitrepo gitrepo 4096 Jul 26 02:37 refs