2009-01-02 44 views
1

我使用SVN的開發任務,但仍然有RCS管理的許多文件,因爲它似乎沒有合理的在我的私人SVN倉庫工作副本進行編輯(因爲他們是那些同時,最好在測試往往只是配置文件-地點)。在SVN控制下有文件的任何地方都有工作副本,這似乎是不合理的,所以我只是使用RCS來代替。就地編輯,版本控制 - 您的解決方案是什麼?

什麼是你的管理應該最好不隨意移動文件的方法/被編輯和就地測試?

爲了更精確:我想具有

  • 具有寫保護file.txt的等效
  • 像「共-l file.txt的」(RCS)的命令使其可編輯
  • 編輯到位,並立即對其進行測試
  • 像「呲-u file.txt的」(RCS)的命令記錄變化,添加評論並使其只讀再次
  • 的能力
  • 其他用戶應該也可以在同一個地方
  • 但是,版本信息應該去一個安全的地方(SVN代表大概),在不同的服務器上

回答

3

我用寫時拷貝文件系統(全體)如Ext3cow(免責聲明,我是它的貢獻者之一)來管理很多東西。例如:

  • 使用快照回滾整個存儲庫,無論是哪種類型。舉例來說,如果我徹底搞砸了一個Git樹,我可以CP -dpfR ./@123456789 ./,它取代我的工作與回購,就像他們在時代123456789
  • 使用版本/快照作爲自己永恆不變的文件VCS,適用於/ etc和其他事物。由於過去的文件無法刪除或修改,因此每個快照都是一個單一文件或整個樹的不可修改版本。

通常,我在Subversion上使用Git或Mercurial,因爲我更喜歡分佈式VCS,但我現在堅持讓我的版本庫在本地版本FS上。

對於Windows用戶,我相信在Python完全做了同樣的一些便攜式的實現......但真的不知道。

+0

有趣的方法,帶回美好的VMS記憶。除了向編輯文件添加一些關於最新更改的註釋外,是否可以向修訂添加註釋? 我得仔細看看ext3cow ... – mjy 2009-01-02 06:38:06

+0

我寫了一些工具,允許用戶註釋的快照,這是存儲在外部文件中。這允許標記或提交描述,因爲它將有意義的字符串與保存的每個時期相關聯。 – 2009-01-02 07:41:38

+0

還要注意,說工具不是我曾經生產:) – 2009-01-02 07:42:19

0

你需要認識到SVN倉庫是免費的。你可以創建儘可能多的你想要的。

您還需要認識到,你沒有簽出整個倉庫。你說:

它也似乎沒有合理的 有倉庫 的工作副本哪裏有文件下 SVN控制把

我不知道你」我真的很想做,但我的印象是你以一種特殊的方式使用SVN。

2

現代分佈式如Git,水銀或集市的版本控制系統是在這樣的情況下的最佳工具。不是因爲分佈式方面(這在此顯然不重要),而是因爲在原地創建存儲庫非常容易。

在水銀,你只需要做:

cd ~/directory 
hg init 

隨着Git是類似於:

cd ~/directory 
git init 
git add . 

每一個工作副本是一個完整的信息庫,你可以把它推到遠程服務器作爲如果你喜歡備份。而且所有的數據庫數據都存儲在一個隱藏的目錄中,所以你可以避免在這個地方有大量的目錄。

我用水銀來管理我的服務器/etc,我覺得非常方便。有一點需要注意,它不會將文件標記爲只讀(如RCS),但我認爲這是一個優勢。

3

至於說你要使用SVN對於應該使用一個DVCS像混帳或水銀的東西了。

每個人都可以有自己的倉庫,然後用MAIS中央回購(如SVN回購協議),它同步。

這實際上是我在自己的項目中使用的。

我唯一沒有得到的是爲什麼你需要鎖。一個文件不必是隻讀的。由於SVN合併的方式(你幾乎總是需要手動完成),你可能會這麼想。 Git真的有魔力[1],大部分合並都沒有人爲干預。

[1]好的,這不是魔術。雖然SVN關心文件,但Git關心的是大量的代碼。這樣,它可以合併同時更改兩次的文件,只要不改變完全相同的代碼塊即可。

相關問題