簡體   English   中英

版本控制和發布管理

[英]Version control and release management

是否有任何所謂的“版本控制系統”也支持實際的版本管理/部署?

我曾經工作的大型機商店有一個自動發布管理工具,它不僅控制對源的並發修改,而且還負責運行編譯器,預編譯器,數據庫綁定實用程序等,使其成為我們的全自動部署工具也是如此。

我的理解是“更現代”的版本控制工具僅支持源管理部分。 這種理解是否正確?

版本控制與發布管理或部署幾乎沒有關系,因此VCS也不會嘗試這樣做。

我在這個領域看到的是構建或持續集成(CI)服務器 這些會聽取VCS中的更改,對任何提交進行新的檢查,然后嘗試構建所有內容。 因此,他們集成了VCS和構建工具,從中收集日志並在一個漂亮的Web UI中呈現所有內容。

這樣,每個工具都可以保持簡單。

[編輯]增加了CI服務器的價值:

  1. 它可以分析構建腳本的輸出,並在郵件或網頁中顯示概述。

  2. 它確保在提交后運行所有測試。 不再“但它適合我”。

  3. 其中一些支持延遲提交(它只會在所有測試運行時提交對VCS的更改)

  4. 它可以在幾個相互依賴的項目上運行構建。

這絕對不正確。 任何現代版本控制工具都支持前提交和后提交掛鈎,此時您可以運行任何所需的代碼。

在subversion中,每次開發人員檢入代碼時,我們都會使用post-commit鈎子將應用程序的副本部署到dev服務器。

在我們的實際生產服務器中,我們有代碼可以驗證然后部署穩定的次要版本標記,因為它們由發布經理提交給repo。

這取決於您希望在此類系統中投入多少金錢和時間。 許多人使用簡單的版本控制 - 比如svn,並管理手動版本(使用標簽和分支)還有其他(免費)工具用於持續集成(不斷構建應用程序),例如cruisecontrol。

在數據庫領域,我不知道在自由世界中有什么好處,但是這里有人可能會完成這個。 所以到現在我手動管理數據庫版本....

我認為你在這里所謂的發布管理通常被稱為構建自動化 這個空間中有各種工具(make,ant,Nant等),但它們往往作為單獨的工具存在。 通常可以從單獨的源代碼控制中提取代碼,並且您可以獲得用於監視進程的產品(在自動完成時稱為持續集成。)

有些供應商提供端到端工具,這些工具屬於應用程序生命周期管理標題

- >我的理解是“更現代”的版本控制工具僅支持源管理部分。 這種理解是否正確?

VCS只處理源代碼管理部分,如果您無法獲得有關更改的通知,那么這是毫無意義的(在有人實現了vcs基礎之后,提供此功能將沒有任何困難;-))

- >我以前工作的大型機商店,有一個自動發布管理工具,不僅控制對源的並發修改,而且還負責運行編譯器,預編譯器,數據庫綁定實用程序等等,使它成為我們的完全自動化的部署工具。

這稱為構建自動化,是的,如果項目的最佳位在有人進行更改但沒有必要時“准備發貨”,這是非常理想的。 您可以使用前面提到的工具執行任何操作(它們是可擴展的)。

持續集成實踐是對這些點的插值,使得您在存儲庫中只有一個干凈,穩定且高貴的代碼。 有所謂的CI服務器連接VC和BA部分。

查看此頁面的CI http://martinfowler.com/articles/continuousIntegration.html

如果有人需要與許多BA工具兼容的CI服務器,許多VCS會看看JetBrains TeamCity

希望這可以幫助

在ruby on rails世界中,Capistrano是首選的部署工具。

http://www.capify.org/index.php/Capistrano

這個問題引起了我的注意,因為

'...... 所謂的 “版本控制系統”......

在問題中,並且由於問題被標記為 ...

我也是從大型機世界來的,大型機'SCM'(=軟件變更管理)就是我們過去25年左右所做的一切。

看到所有標簽的所謂同義詞,我有點驚訝(也許是“震驚”?)。 特別是標簽(我不確定SE過程建議不再將其視為同義詞)。 SCM,至少在大型機領域,不僅僅是版本控制(這只是SCM的一部分)。 那些與某些相關的主題(恕我直言,SCM的子功能)中的任何一個怎么樣:

  • 發布管理(原始問題的一部分)。
  • 部署過程(原始問題的一部分)。
  • 影響分析。
  • 審批工作流程。
  • 值得信賴和可用的測試環境。
  • 緊急程序,例如在非工作時間。
  • 自動回滾(退出)僅需幾秒鍾。
  • 審計(治理過程)。
  • ......(依次列出)。

為了說明所有這些問題的重要性,我經常會問這個問題:“應用(錯誤?) - 修復飛機上的自動駕駛軟件需要什么......飛行!?!?” 換句話說:“在您開始航班期間應用此類修補程序之前,必須采取的所有步驟和程序是什么?”。

從之前提供的各種答案中,我不確定(還)其中哪一個,如果有的話,選擇這樣的機上錯誤修正。

我目前正在為發布管理開發一個Web應用程序,如果您想成為beta用戶,請告訴我。 我有一個基本版本管理流程的工作版本,例如能夠通過挑選您想要的更改來創建版本(同時自動處理依賴項更改),以及推出或回滾到發布歷史記錄中的任何點到許多不同的環境(測試或生產)服務器)。 目前,它支持與SVN的集成。

http://www.ngashint.com獲取該項目的博客站點。 你可以留下你的電子郵件開始接收測試版或給我發電子郵件kzt001 [at] gmail.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM