2014-02-27 63 views
0

我將簡要介紹一下我們的工作流程: 我們是一個想開發一些網站的四位程序員。這個想法將直接與(測試)網絡服務器一起工作,而不是在本地。我們還希望每次我們想要處理它們時都會鎖定文件,以避免損壞。到目前爲止,我已經看過Git,但問題在於您始終擁有本地副本,並且我們不想使用XAMP服務器或任何其他方式。 一旦我們同意我們的項目完成,我們希望將這些更改「推」到一個(真實的)網絡服務器,以便網站在線。Web開發控制版

所以基本上我們需要的是直接在一個(測試)網絡服務器上工作,所以我們的改變是在線的,但是有一個版本控制系統。

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

有沒有辦法像這樣工作?有沒有專爲團隊合作開發設計的控制版本?

回答

0

看看...

CVS是有些過時,但支持與項目不斷髮展(即不正規完整的推出)許多小文件反映了相當嚴格的數據封裝。推出/里程碑仍然可以通過發佈所謂的標籤到版本化文件集來建模。

通用操作系統的客戶端可用於每種解決方案。

1

您可以編寫後收到鉤,並將其添加到測試服務器的純倉庫

這個鉤子將每次按下一些變化reposotory時間aoutodeploy最新版本。

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

#!/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" 
0

你可以嘗試安裝在本地目錄測試服務器的Web根目錄(如果測試服務器是一個本地網內,或VPN),依靠你的文件系統的機制來處理併發使用資源。然後,您將通過ssh使用vcs命令直接在服務器上對項目進行版本控制。

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