2015-11-04 39 views
1

這本來是a question targeting git/bitbucket,但在找到我們的要求後,我不能支持,我正在尋找替代品。允許部分分支的源控制系統

我們有一個主要的代碼庫有一些'機密'庫。我們需要一種方法來創建分支或分支以用於調查目的(對於非現場工作人員)不包含選定的機密文件,但對於所有其他文件,仍然能夠推送,查看整個歷史記錄。

我已經能夠在perforce/SourceDepot VCSs中實現同樣的功能,但是我想查看我們的其他選項。

Big plus將是一個能夠使用bitbucket中的歷史遷移的功能。另一大優勢是某些(甚至自定義)http主機瀏覽代碼/歷史記錄的能力,這些代碼/歷史記錄可以與JIRA集成(比如bitbucket/git)。

這裏是什麼,我想實現一個例子:

Repo1(main): 
|-publicFolder 
    |-file1 
    |-file2 
|-privateFolder 
    |-fileA 
    |-fileB 

Repo2(investigation): 
|-publicFolder 
    |-file1 
    |-file2 

編輯:

看來,這一方案是善變的實現結合兩件事情 - convert extension加上subrepos功能suggested by Lazy Badger

轉換部分需要以下filemap.txt:

include publicFolder 

和之後轉換命令:

hg convert --filemap filemap.txt path/to/local/Repo1 path/to/local/Repo2 

下一個步驟是從刪除publicFolder Repo1最後創建以上這兩個回購薄subrepo殼(以能夠將它們視爲如果需要,單個存儲庫)。

+0

順便說一句,「部分分支」是完全不合適的ly定向術語任務 –

+0

@Lazy Badger那麼術語「部分分支」對於你所描述的(這仍然是_incredibly_有用)是不合適的。但它實際上是在描述我想達到的目標。看起來有一種方法 - 通過使用帶有映射 – Jan

+0

的_convert_擴展名和_-- filemap_選項,「下一步」必須**不會從Repo1 **中刪除文件夾(因爲'hg rm'不會清除歷史記錄) ,但還有一個用'exclude publicFolder'轉換 –

回答

2
  • 外部對象在SVN
  • 子模在GIT中
  • Subrepos在水銀

或多或少顯着的和到指定任務(分離和聚集)廣爲人知迭代(你寫,爲什麼這是錯的或他們失敗了)

+0

Thanks!這看起來_exactly_是我正在尋找的東西。我還沒有對這些選項(對我來說是全新的)進行研究 - 以確保它是我認爲的 - 在將答案標記爲答案之前 – Jan

1

Perforce允許有一個工作區,即工作副本,配置有來自多個軟件倉庫的文件。

然後,您可以針對不同的軟件倉庫[0]擁有不同的訪問權限。

見多車場設置在這裏: http://answers.perforce.com/articles/KB/2437

您將需要一個公共//車廠,每個人都可以訪問和//限制車廠當少數人獲得。

然後根據正確的,人們將能夠創建工作區與任何

//public/... 
//restricted/... 

或僅

//public/... 

另一大優點是一些(甚至是自定義)的能力用於瀏覽代碼/歷史的http託管,可以與JIRA集成(比如bitbucket/git)。

Perforce有一些稱爲P4Web的Web界面。我自己並沒有使用過它,從我短暫看過的內容看,它有點過時了,谷歌告訴我它已不再支持。

另一方面,任何SCM都可以使用的骯髒解決方案是將庫的二進制文件提交到公共存儲庫。通過這種方式您可以混淆源代碼。 (這仍然可以在一定程度上拆卸)。

Perforce倉庫或多或少等同於其他SCM中的倉庫。

+0

謝謝澤維爾 - 我知道這個問題。我正在嘗試查看其他選項。 (我過去使用過perforce,現在唯一的買入參數是它支持工作區) – Jan

相關問題