2011-01-27 56 views
3

我們安裝在使用sshfs的SSH文件系統,並使用它作爲git倉庫協作遠程存儲。混帳推過SSHFS與失敗的「關閉SHA1文件時的錯誤:錯誤的文件描述符」

的Mac OSX 10.6.6到RHEL 3服務器 SSHFS版本2.2(MACFUSE SSHFS 2.2.0)
MACFUSE庫版本:FUSE 2.7.3/2.0.3 MACFUSE

sshfs -o workaround=rename [email protected]:/path/to/directory ~/git

這裏的如何我們正在創造我們的回購的,與他們在當地的工作,然後試圖推回服務器:

cd ~/git/mypersonaluser 
git init --bare --share mynewrepo.git 
git clone ~/git/mypersonaluser/mynewrepo.git ~/Desktop/mynewrepo 
cd ~/Desktop/mynewrepo 
... make a few edits to the repo ... 
git push origin master 

Counting objects: 7, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (4/4), done. 
Writing objects: 100% (4/4), 20.82 KiB | 23 KiB/s, done. 
Total 4 (delta 1), reused 0 (delta 0) 
fatal: error when closing sha1 file: Bad file descriptor 
error: unpack failed: unpack-objects abnormal exit 
To /Users/joebob/git/mypersonaluser/mynewrepo.git/ 
! [remote rejected] master -> master (n/a (unpacker error)) 
error: failed to push some refs to '/Users/joebob/git/mypersonaluser/mynewrepo.git/' 

什麼奇怪的是,似乎小編輯回購推成功,但更大的承諾與多個新文件或大量的編輯不起作用。

我們SSHFS和MACFUSE新手,但中間的git用戶。

任何想法或建議嗎?

+0

我忘了說:我們的遠程服務器上沒有安裝git binaries,這就是爲什麼我們需要通過sshfs掛載,所以我們可以在我們的本地機器上使用工具。 – 2011-02-01 15:52:37

+0

你是否設法解決這個問題?我使用macfusion時遇到同樣的問題,因爲服務器上沒有git二進制文件,所以不能使用直接的git ssh版本。 – Hugo 2011-02-15 22:29:49

回答

0

我們從來沒有發現一個修復程序安裝在sshfs的服務器時,我們遇到的問題。但是,我的一個同事沒弄清楚如何在本地單個賬戶內的RHEL 3服務器上安裝git的二進制文件,現在我們可以用我們通過SSH遠程倉庫,現在的作品完美溝通。

下面是他使用的安裝命令,通過SSH登錄到服務器時應該使用:

curl -O http://kernel.org/pub/software/scm/git/git-1.7.4.1.tar.gz 
tar xvfz git-1.7.4.1.tar.gz 
cd git-1.7.4.1 
./configure --prefix=$HOME CFLAGS='-I/usr/kerberos/include' 
make SHELL="/bin/bash" install 

接下來,添加您的遠程帳戶的bin目錄服務器帳戶的PATH通過在編輯~/.bashrc服務器並將此行添加到末尾:

export PATH=$PATH:$HOME/bin 

從您的開發機器,然後可以定義遠程存儲庫位置並推送到它。

git add remote myremote ssh://[email protected]/home/myuser/path/to/repo.git 
git push myremote branchnamehere 
4

的Git能推動通過SSH本身,而無需在服務器安裝到本地文件系統。 我會建議您嘗試這樣的:

git push [email protected]:/path/to/directory master 

我這個工作,只是遠程更改原產地[email protected]:/path/to/directory,而不是~/git

如果它不工作,要麼它至少告訴我們,MACFUSE或sshfs的ISN不要責怪。

相關問題