2015-05-08 92 views
0

我們正在爲我們的版本控制系統切換到git。 我用'git svn'來克隆我當前的svn倉庫「bigproject」到一個git倉庫 - 我還設置了一個cron來同步svn提交到這個git倉庫。Git:克隆後缺少子目錄

「bigproject」沒有定義的外部參數或svn:忽略屬性 「bigproject」有許多目錄和子目錄(最多7層深)。

src/apps/fld1/fld2/fld3/fld4/fld5  

當我檢查遷移的git repo時,它似乎具有所需的所有文件夾。

在實際遷移之前,我設置了一個登臺服務器,並在那裏推送了這個「bigproject」repo,並試圖將我的構建腳本切換爲使用git而不是svn。

這是我主持我的「混帳分期」服務器上的回購:

git clone --bare bigproject/ bigproject.git 
cp -R bigproject.git /opt/git/ 
cd /opt/git/bigproject.git 
git init --bare --shared 

在構建服務器,我做一個git克隆和檢查後,我發現了一些子目錄人失蹤 - ESP後3級深

[email protected]:bigproject.git 

克隆後,我只有

src/apps/fld1 

我試圖重新 - 多次出口裸回購以消除任何人爲錯誤,但我似乎無法弄清楚。

有沒有人見過這個?

+3

目錄是否爲空? Git忽略空目錄,包括只包含空目錄的目錄。 – chepner

+0

有 - 謝謝 – obfuscate

回答

1

我可以看到兩個可能的原因

1)你是在Windows下和在路長度的

2)的src /應用/ FLD1 /包含了一些文件,而FLD2並達到了255個字符最多其所有子目錄都不包含任何文件。你不能在Git中添加一個空目錄,如果一個目錄不包含任何文件,它將被認爲是空的。如果一個目錄包含一個不包含任何文件的子目錄,你仍然不能將它添加到git中。你可以檢查Git FAQ - how to add an empty diectory。 以下是摘錄

我可以添加空目錄嗎?

目前的Git指數(分段區)的設計只允許上市 文件,沒有人有足夠能力做出改變,以允許 空目錄已經夠關心這個情況 補救。

在添加文件時會自動添加目錄。 也就是說,永遠不必將目錄添加到存儲庫,並且不會自行跟蹤 。

你可以說「git add」,它會在那裏添加文件。

如果您確實需要在結帳時存在目錄,您應該在其中創建一個文件 。 .gitignore適用於此目的(也有一個 工具MarkEmptyDirs使用。NET框架,它允許你自動執行這個任務)。您可以將其保留爲空或填寫您不期望在目錄中顯示的 文件的名稱。

+0

現貨。我沿着這些路徑有空目錄。謝謝! – obfuscate