我正在非常拼命地设置TortoiseSVN ...我有两个文件夹 - / live /和/ test / - 我希望它们被镜像,然后如果我更新/ test /文件夹,SVN将检测到这个,并在我提交时适当地更新/ live /文件夹..我已经尝试了无数的事情来使这个工作,但不幸的是没有快乐。
我可能非常愚蠢,但我发现整个SVN的事情非常令人困惑,除了版本(Mac)之外,我从来没有真正能够让一个人工作。在理想的世界里,我想选择两个文件夹,然后离开!
谢谢!
(编辑)在阅读了下面的内容后,仍然失败了,我可能不得不给这个错过。非常感谢你的回复,但这真的超出了我。我将使用WinMerge并牺牲能够存档我所做的更改。再一次感谢你们的回复,希望这些答案对那些真正有能力设置这些东西的人有用!
答案 0 :(得分:2)
Subversion(使用TortoiseSVN或命令行)并不适用于像镜像这样的事情。
当您提交/live/
或者考虑向TortoiseSVN添加Post-Commit Hook以使用客户端Hook脚本自动执行此操作时,您可以手动更新/test/
。
注意:
如果您不需要编辑或更改/live/
,您应该查看Subversion export命令,而不是让live是一个工作副本(您仍然需要手动执行此操作或添加post-提交钩子)。
答案 1 :(得分:2)
在您对SVN过于困惑之前,read chapters 1-3 of this book。
SVN不是自动复制工具。它不是备份工具。这是一个修订控制系统。使用它做一些不应该做的事情是可能的;但是,结果往往不如使用正确的工具来完成工作。
答案 2 :(得分:1)
TortoiseSVN是Subversion 客户端。至少,您需要创建一个Subversion 存储库来存储您的文件,然后将您的文件从Subversion存储库中检出到您计算机上的目录中。我真的认为你应该阅读一下Subversion的工作原理。这个book是官方参考。
答案 3 :(得分:1)
听起来你想要同一个分支(或主干)的两个工作副本 - 一个在live
中,另一个在test
中。为此,请创建两个目录,并在每个目录中执行svn checkout
分支(或主干)(即checkout
两次)。确保在两个结帐中使用相同的分支(或主干)。
当您svn commit
进行测试时,您的下一个svn update
将会接收更改。
我不确定你为什么要这样做。在您提交之前,只要您需要,您就可以“在线直播”进行编辑。如果您需要对测试中的更改进行版本控制,则需要阅读branching。
答案 4 :(得分:1)
如果我理解正确有存储库,并且有两个工作副本,test和live,并且您希望在提交测试工作副本的更改时自动更新实时工作副本。
如果有新版本可用,则没有内置功能指示某些工作副本自动更新。更新总是手动完成。
我相信你实际上需要某种“部署”功能(正如名称“live”所示)。部署不是SVN的工作。你需要一些其他的工具。
答案 5 :(得分:1)
大多数人已经用缩短的形式说过,我几乎没有新的东西 好。我会再试一次画出详细的图片
首先,问题在术语和业务任务方面都很糟糕。如果TEST是你的repo的WorkingCopy(似乎是这样),LIVE是带有内容的解压缩目录,与repo(HEAD)中的最新版本相同,那么你可以而且必须像在@crashmstr中所写的那样,在TSVN中使用post-commit hook来生成新档案
以下是我的Releaser.bat的相关部分(我在每次提交后使用custiom名称构建存档,因此使用subwcrev增加了一些复杂性)
SubWCRev.exe e:\Projs\CustomLocations e:\Projs\Builder.tpl z:\Builder.bat
...
call z:\Builder.bat
来自Builder.tpl的模板
"c:\Program Files\_Net\VisualSVN Server\bin\svn.exe" export e:\Projs\CustomLocations\trunk z:\trunk$WCDATE=%Y%m%d$-r$WCREV$
成为smth.like
"c:\Program Files\_Net\VisualSVN Server\bin\svn.exe" export e:\Projs\CustomLocations\trunk z:\trunk20110926-r1129
执行z:\ Builder.bat,结果我
我的作品有新的单独版本,标有唯一ID。是的,它需要一些工作(一次)和SVN命令lene客户端的存在,但它是公平的价格