2011-10-30 262 views
1

我正在嘗試使用tortoiseSVN來解決我遇到的一個小問題。TortoiseSVN - 本地主機上的存儲庫,然後在本地主機和聯機上運行副本。可能?

我有一臺開發筆記本電腦,並開發了我的大部分網站。 但是,如果我正在移動,並且有人向我發送了一個報告錯誤的SMS,我經常在那裏的任何一臺計算機上登錄到我的ftp,然後本身修復該網站。

如果我在開發筆記本電腦上做了額外的更改,我經常會忘記我所做的實時更改,結果導致其丟失。

因此,我期待使用tortoiseSVN來緩解這個問題。

我的託管帳戶是與hostgator共享的託管帳戶,它不支持SVN存儲庫。

我正確地認爲SVN的工作方式是我的'live'副本必須是存儲庫嗎?或者我錯過了這一點?

有人可以解釋我將如何去實現我想要的東西,即使它需要託管更改..或者更適合我的情況的替代方案..?

很多謝謝。

湯姆

回答

2

我不知道你的意思是「活」的副本是什麼,但這裏是你如何使用SVN工作。

首先,你有一個SVN服務器,這可能是你的筆記本電腦,但最好是在單獨使用自動備份等

然後在本地機器上,你有工作副本。工作副本主要是服務器上內容的克隆,但需要進行本地修改。當您對本地修改感到滿意時,您將更改提交(提交)到服務器。如果您對本地更改不滿意,可以輕鬆恢復到服務器上的版本(或舊版本)。

要讓你的生產環境與svn無關。這稱爲部署過程或發佈過程。部署過程通常編譯,支持安裝程序或收集要安裝的文件,並最終將結果安裝/複製到生產環境。

您的應用程序/網站的「主」副本應該位於svn服務器上。要將某些內容投入到生產中,可以運行腳本或按照手動過程將內容從工作副本中獲取到生產中。

通過使用svn服務器作爲主副本而不是筆記本電腦,當您通過在生產環境中直接編輯文件「欺騙」時,不能解決缺少更新的問題。但是如果你有遠程shell訪問(ssh),你可以在生產服務器上擁有本地工作副本,編輯工作副本中的東西並通過命令行svn工具檢查它們。

編輯
澄清:你的 「活」 的副本應絕對不是倉庫。存儲庫的結構不像常規文件樹,其中包含常規文件。更像是一系列變更集。
您的「活」副本應該是最好是也不是工作副本。工作副本包含特殊的文件夾和文件,以跟蹤您不希望在公共網站上使用的「內容」。您的實時副本應該是工作副本中相關文件的副本。可以用copy *.html /www-folder/svn export或者更精細的方法。

+0

嗯..我當前的主機帳戶不允許SVN存儲庫設置,所以它必須在我的筆記本電腦上。 你是否說我不應該編輯我的LIVE版本?IE版本的人可以在互聯網上看到,但是如果我負責部署網站,我應該確保我的工作副本是最新的,然後手動上傳所有文件等。? 這裏的問題是,如果有一個線路錯誤的例子,我不得不更新我的工作文件,更新存儲庫,然後去重新上傳一個文件的努力..這是你的建議? –

+0

有很多外部svn主機可以選擇。如果您的託管服務提供商爲您提供了shell訪問權限,則他們不需要支持svn託管服務,您可以在當前主機上運行svn客戶端,並在其中保留本地工作副本。然後,您可以在編輯時從該工作副本ftp文件進行ftp文件的創建,然後通過遠程shell執行並執行您的部署腳本(如複製./*.html/www-dir/site /')。 –

+0

我只是說我不會從我認識的公司獲得任何服務而無需事先測試並且沒有任何已完成工作的任何服務。 –

0

一個最好的答案就是使用分佈式版本控制系統在您的網站是一個鏡分支機構或直接在倉庫(或工作拷貝,這是相同的DVCS)。
所以你直接受益於你的版本控制!

你可以使用Bazaar,Git或者mercurial來做到這一點,(或者任何其他的DVCS,它只是主要的)。

+0

我剛剛得到了tortoisesvn :)感謝Albin的幫助.. TridenT,我正確地認爲Bazzar/Git/Mercurial使生活版(作爲描述它的實時版本)存儲庫..然後我在許多電腦上可以有許多工作副本? 有沒有與這些使用tortoisesvn esque程序? –

+0

是的,這是確切的。當然你有TortoiseBzr,TortoiseGit和TortoiseHg。即使你剛開始使用SVN,看看Bazaar和Mercurial(汞),它們與SVN非常相似。 – TridenT