2010-01-19 57 views
3

在SourceSafe中,我可以知道是否有人修改了文件但未提交,因爲該文件將被鎖定。我如何看到已修改的文件,但未從服務器提交?

默認情況下Svn不能使用鎖,這很好,但是我怎麼知道某人是否修改了任何文件並忘記了提交?

在我的工作中,我們在開發機器上編譯dll併發送到staging,我知道構建服務器與subversion服務器集成可以解決此問題,但我不想在此刻執行此操作。

PS:我擔心的是用舊的.cs編譯項目,因爲程序員可能沒有提交。

回答

5

這不是SVN的工作原理。

SubVersion使用源代碼管理的edit-merge-commit方式。任何人都可以自由更改任何文件。提交時,如果有衝突,這些變化可(自動或手動)合併

有關鎖定和更多的討論編輯合併提交可以在這裏找到:

VSS to Subversion

+1

*「任何人都可以自由更改任何文件。」* - 不嚴格正確。 **從v1.2開始,Subversion可以選擇支持鎖定**(「保留結帳」)。更多信息在這裏:http://subversion.tigris.org/svn_1.2_releasenotes.html。然而,許多用戶認爲這違背了Subversion的哲學,只是爲了完整而包含在內。 – RedFilter 2010-01-19 14:21:24

+0

我的關注點是用舊的.cs編譯一個項目,因爲程序員可能沒有提交。 – 2010-01-21 11:04:51

0

有一個Check For Modifications命令,你可以在更新後運行,除非我誤解你。

+0

這聽起來像是他正在尋找一種方式來告訴其他開發者是否在本地修改了文件,但還沒有提交回SVN。因此,檢查修改不太適合該法案。 – 2010-01-19 14:12:30

1

您可以在每個人開始修改文件之前創建一個內部過程,要求SVN服務器進行鎖定。這樣每個人都會收到他正在處理該文件的更新。

但是這樣做會消除Subversion的好處,即更多的人可以同時在同一個文件上工作,併合並結果。

0

這種部署風格不適用於Subversion。您聲明您不希望將構建服務器置於原位,因此您必須依賴所有開發人員在部署前執行一組一致的步驟,以便在發送到分級時不會丟失任何內容。我怎麼會解決,這是創建構建腳本,將執行以下操作(僅適用於發佈到分期):

  • 拉下從Subversion的最新
  • 建立所有輸出
  • 運行單元測試
  • 提交的所有修改文件回SVN
  • 推組件,以分期
  • 後推的配置更改/環境準備

這種方式未提交的更改將不會存在於任何暫存中。

0

您可以使用svn status來檢查您是否有任何本地未得到的改變。

要知道是否有人有一些無法改變的變化,您需要勸說/賄賂/支付/恐嚇其他人每天運行測試,或將其放入cron或其他調度程序中。當然,那麼你會因爲某個原因(例如,某些尚未完成,未正常工作等)而留下的文件而感到震驚。

+0

我如何在Tortoise SVN中使用svn狀態?它掃描我所有的高清或剛選擇的項目? 是的,我們有SourceSafe的版本問題,想象與Svn – 2010-01-22 10:56:43

相關問題