簡體   English   中英

Web開發的控制版本

[英]Control Version for Web Development

我將簡要解釋我們的工作流程:我們是四個程序員,他們想要開發許多網站。 這個想法是直接與(測試)網絡服務器一起工作,而不是在本地工作。 我們還希望每次處理文件時都將其鎖定,從而避免損壞。 到目前為止,我已經研究了Git,但是問題是您始終擁有本地副本,並且我們不希望使用XAMP服務器或任何其他版本。 一旦我們同意我們的項目完成,我們就希望將這些更改“推送”到(真實的)網絡服務器,以便網站在線。

因此,基本上,我們需要的是直接在(測試)網絡服務器上工作,以便我們的更改可以直接在線進行,但需要使用版本控制系統。

到目前為止,我一直嘗試使用Git創建一個裸倉庫。 問題是,如果我們要從服務器提取當前版本,則會創建本地副本。 以后,如果我們想嘗試更改,則必須將這些更改推回並每次都刷新網站。 理想情況下,如果我們僅保存項目並刷新網站但使用控制版本,那將是很好的。

有什么辦法可以像這樣工作嗎? 有針對團隊合作開發的控制版本嗎?

您可以編寫接收后掛鈎並將其添加到測試服務器的裸存儲庫中

每次您對存儲庫進行某些更改時,此掛鈎將部署最新版本。

我使用這種方式在生產服務器上部署新版本。 我的釣鈎在紅寶石上:

#!/usr/bin/env ruby
# post-receive
require 'fileutils'
# 1. params
from, to, branch = ARGF.read.split " "
deploy_to_dir = '/home/domain'
# 2. Check if master
if (branch =~ /master$/) == nil
    puts "this branch #{branch}, not for deploing."
    exit
end
FileUtils.touch(deploy_to_dir+'/SERVER_DOWN')

# 3. copy files to deploy
`GIT_WORK_TREE="#{deploy_to_dir}" git checkout -f master`
puts "DEPLOY: master(#{to}) copied to '#{deploy_to_dir}'"
#clean all exept new uploaded images
`GIT_WORK_TREE="#{deploy_to_dir}" git clean -fd -e public_html/img/storage`
puts "DEPLOY: git clean done."
# 4. Deployment Tasks
# Clear cache, restart Daemons etc

FileUtils.rm_rf(deploy_to_dir+"/public_html/codegen")
puts "CLEAR: deleted "+deploy_to_dir+"/public_html/codegen"

FileUtils.rm_rf(deploy_to_dir+"/smarty/templates_c")
Dir.mkdir(deploy_to_dir+"/smarty/templates_c")
FileUtils.chmod 0755, deploy_to_dir+"/smarty/templates_c"
puts "CLEAR: deleted  and created "+deploy_to_dir+"/smarty/templates_c/*"

FileUtils.rm_f deploy_to_dir+"/.gitignore"
puts "CLEAR: deleted "+deploy_to_dir+"/.gitignore"

FileUtils.mv deploy_to_dir+"/public_html/prod.htaccess", deploy_to_dir+"/public_html/.htaccess"
puts "CLEAR: production .htaccess online"

FileUtils.rm_f deploy_to_dir+"/SERVER_DOWN"
puts "CLEAR: deleted "+deploy_to_dir+"/SERVER_DOWN"

看一下 ...

cvs有點過時了,但是支持在具有許多小文件的項目上進行連續開發(即沒有定期的完整部署),這些文件反映了相當嚴格的數據封裝。 仍然可以通過向版本化文件集發出所謂的標簽來對發布/里程碑進行建模。

每個解決方案都可以使用通用操作系統的客戶端。

您可以嘗試將測試服務器的Web根目錄掛載到本地目錄(如果測試服務器位於本地網絡或VPN內),並依靠文件系統的機制來處理資源的並發使用。 然后,您將通過ssh使用vcs命令來直接在服務器上對項目進行版本控制。

但是,恕我直言,這將是一個非常奇怪的工作流程。 如果本地開發問題僅與設置XAMPP或類似問題有關,那么您是否考慮過使用可以通過Shell上的簡單命令啟動和停止的嵌入式Web服務器的選擇? (node,ruby和python都具有嵌入式Web服務器供開發使用,如果我沒記錯的話,還可以安裝5.4版的php)。

暫無
暫無

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

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