對不起,stackoverflow不允許回覆或編輯我的帖子我自己或您的答案,因爲我沒有註冊時,我問這個問題。所以這裏有迴應...
Simon:謝謝。爲什麼你建議修改屬性不需要提交? nant構建腳本目前使用修訂屬性來跟蹤合併和重新集成的分支版本(svn的內置合併能力太容易混淆了)。但是這些版本屬性需要提交到中央存儲庫,並且您的鏈接引用了與此相同類型的版本屬性。你是指一些其他類型的版本屬性?
關鍵技巧:是的,提交「Autobuild更新到0.5.6.1049版」的消息是可定製的。該提交實際發生在由Hudson使用CI執行的nant構建腳本中。並且,請記住,我們希望消除該提交,因爲每次對Pub提交後都會有一個(或多個)那些會污染日誌的自動消息。
Mark:re:提交指向Priv的指針。承諾發佈的用戶對Priv的訪問權限爲零,因此他們不知道什麼版本 - 否則是一個好主意。另一方面,自動構建現在可以在構建pub和priv時執行此操作,但是會使用大量自動提交來污染日誌文件,只是將其他任何實質性更改的版本鏈接到Priv。 Mark:我們考慮將對應關係存儲在存儲庫之外,但這會導致另一個我們無法解決的問題。解決這個問題,你贏得了答案。問題在於,pub存儲庫保存的軟件取決於從Priv和完全相應的版本構建的二進制文件。所以它包含了一個「自動更新」功能,它連接到服務器上,並持有Priv並請求二進制文件並下載它們。關鍵是開始下載的主要參數是版本。
馬克:所以問題是酒吧怎麼知道要下載哪個版本?現在,通過原始問題的情況解決了這個問題。自動生成的nant腳本會對Pub中的源代碼進行更改,以包含Priv的版本號,但這是用「Auto build updated the version ..」自動生成Pub日誌的原因。自動更新工具使用該版本,如果有權從Web服務器請求Priv二進制文件。它一切正常。
Mark:第一個問題似乎可以通過切換關係來解決,Pub軟件使用版本自動更新 - Pub版本,Web服務器使用單獨的文件獲取最新的匹配版本的Priv二進制文件。然而,低看,似乎沒有實用的方法讓Pub軟件知道每個提交的版本。Mark:如果您在自動更新代碼中添加了$ Rev $關鍵字,它只會更新它修改過的文件。這似乎是Subversion工作中的一個「古老的」挑戰。看起來預提交鉤子可以用一個版本更新源代碼,但似乎只有某人提交了有問題的自動udpate源文件。
馬克:你最後的想法有點令人困惑,但它聽起來像剛纔提到的那樣包含版本信息並提交給Pub,而不是另外提供一個自動提交。我喜歡這一點,但無法弄清楚(谷歌搜索和閱讀論壇和帖子超過一天後)。對於如何提交項目範圍版本以及任何對Subversion的普通提交,這似乎是一個共同的挑戰,因爲它只是單獨版本文件。即使你在pre-commit hook中使用svnversion,它也只會更新修改的文件,對嗎?那麼,自動構建源代碼在運行時如何知道它的版本?
大家好:感謝大家的提問和回覆。它有助於縮小對問題的理解,以便我們能夠達成解決方案!所以。太酷了!
你使用什麼CI?提交消息是「自動構建更新版本」。可在您的CI中定製? –