2013-10-06 45 views
3

改寫這個問題,因爲它似乎導致了一些困惑:顛覆,但不是混帳允許空文件夾是正確的嗎?

的谷歌搜索,已經,奇怪的是,沒有發現明確的參考指出Subversion並「允許空文件夾」了大量。

廣泛的測試(下文詳細描述)似乎表明,git不允許空文件夾,而顛覆確實允許空文件夾。

任何人都可以提供一個明確的答案或參考,如果這是真的,Git不會允許空文件夾(奧利已經這樣做了如下 - 宏偉,感謝奧利

任何人都可以提供一個明確的答案或參考如果顛覆確實允許空文件夾(例如顛覆書,實際上沒有說什麼,無論如何,關於空文件夾的話題,即使它似乎是一個主要問題)。

再次感謝。


使用(說)Unity3D,你有文件夾是空的是完全正常的。

FTR我使用「版本」(versionsapp.com)在我的Mac作爲一個客戶同時顛覆回購協議(例如,在xp-dev.com),當我不得不使用git(github.com)

我注意到:當使用顛覆時,似乎沒有空文件夾的問題。我必須將空文件夾上/下數百次,並且從未看到問題或聽說過任何問題。

但是今天我試圖把一個Unity項目放在github上,我的意思是上傳到現有的回購。

好像不可能 - 據我所知,git根本不允許,沒有設施,空文件夾

請注意,我已經在這裏和其他地方使用混帳當空文件夾雜物的解決方法(例如,添加一個自述文件,添加一個忽略,只是不包括空文件夾,等等等等發現 - 我有它,謝謝)。

我想從某個專家那裏知道......如果我告訴某人,「哦,git不允許空文件夾,但顛覆確實允許空文件夾...」是一個完全真實的句子? (在git中爲空文件夾留出解決方法。)

感謝您的專業知識。

+1

採取的一點。找到正確的證據[SVN中的文件夾跟蹤]並不容易,主要是因爲任何嘗試過SVN或看過教程的人都知道這是可能的。這是一個簡單的訣竅:進入任何SVN倉庫,創建一個空文件夾並嘗試添加它。如果它工作,SVN可以添加空文件夾;如果沒有,它不能。 (這被稱爲'嘗試看看'的方法,並且通常可以幫助你更好地記住比其他人只是告訴你的東西更好的東西;)) –

+0

?我在很大程度上解釋了包括使用的示例工具等,我「嘗試了它並看到了」。我詳細解釋了我正在尋求專家對結果的確認。 (你不會用「試試看」來做工程。)非常令人困惑的談話。 – Fattie

+0

@NevikRehnel http://meta.stackexchange.com/questions/5280/embrace-the-non-googlers – eis

回答

4

正如我在this answer解釋:

  • SVN是一個修正系統(它存儲文件和目錄的revision的一部分,這是一個「文件系統樹的狀態」(文件和爲了計算增量目錄),
    (這意味着,是的,空目錄是允許的,因爲他們需要對計算未來修訂增量)。

revision in svn

  • Git是其核心內容跟蹤(始建於管理補丁Linus Torvalds的必須合併到自己的Linux樹百)。
    它僅跟蹤內容,如snapshots,爲了比較SHA1表示所述內容(也就是當兩個內容是相同的或不檢查的非常快方式)。

git snapshot

由於空目錄沒有內容,它不是快照的一部分。
請注意,這是一個實現問題,而不是一個基本的git存儲設計問題。
有關更多信息,另請參閱「Git Book」。

+0

令人驚歎的答案 - t漢克斯! – Fattie

+0

對你的好奇心@Von。你已經驚人地解釋了爲什麼,事實上,顛覆確實允許空文件夾。因此:回答「我需要專家果斷回答:顛覆允許空文件夾嗎?」你完全提供了答案:「是的。」 (謝謝!)但是,就像一個好奇心:有點奇怪,你不能在網絡上的任何地方找到這個信息。既然這是一個基本點,你會認爲會有100多個帖子和doco。所有提到的地方的條目「,當然這是一個基本的svn是空的文件夾,而git沒有空文件夾。」奇! – Fattie

+0

@JoeBlow這主要是因爲這是[修訂控制](http://en.wikipedia.org/wiki/Revision_control)自清晨以來(主要是[RCS,早在1982年](http: //en.wikipedia.org/wiki/Revision_Control_System))。但是Linus想要快點*(http://www.youtube.com/watch?v=4XpnKHJAok8&t=10m48s,但是等到11'52)。內容管理和*本地*通過SHA1進行的內容比較比任何其他*集中*(即不得不回到服務器)解決方案的速度快得多。 – VonC

2

Git Wiki

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

Subversion book

svn add

計劃文件,目錄,或除了存儲庫工作拷貝符號鏈接。

+0

嘿奧利 - 對此非常感謝,但是當我在搜索時偶然發現(後者),目前還不清楚它是否意味着EMPTY目錄。(例如:網上有1000個參考文獻說「你可以添加目錄到git」 - 知道我的意思嗎?因此,假設你不能將空目錄添加到subversion,那麼這個句子「Schedule files,directories ,或工作副本中的符號鏈接以添加到存儲庫中「。仍然是完全正確的,並且實際上命令」svn add「仍然存在並且可以工作(但在空目錄後會出現錯誤) – Fattie

+0

@JoeBlow :這個概念是SVN中的目錄是一流的實體,與Git不同的是,有了更多的谷歌搜索,我確信可以找到一個明確的源代碼來顯式地解決空目錄,但是假設一個目錄可以簡單地設置一個SVN回購並確認這種行爲,我不確定它是否保證它... –

+0

@JoeBlow:我不會將自己列爲「源代碼控制專家」;)僅僅是對使用SVN非常熟悉的人(不如Git ...) –