【问题标题】:Setup Tortoise SVN with existing folder使用现有文件夹设置 Tortoise SVN
【发布时间】:2011-10-07 14:40:20
【问题描述】:

我正在拼命地设置 TortoiseSVN... 我有两个文件夹 - /live/ 和 /test/ - 我希望它们被镜像,然后如果我更新 /test/ 文件夹,SVN 会检测到这个,并在我提交时适当地更新 /live/ 文件夹。我已经尝试了无数的方法来让它工作,但不幸的是没有任何乐趣。

我可能非常愚蠢,但我发现整个 SVN 事情非常令人费解,除了版本 (Mac) 之外,我实际上从来没有能够让一个工作。在一个理想的世界里,我想选择这两个文件夹,然后我就走了!

谢谢!

(编辑)在阅读了以下内容后,仍然失败了,很遗憾,我可能不得不错过这个。非常感谢您的回复,但实际上这超出了我的范围。我将只使用 WinMerge 并牺牲将我所做的更改存档的能力。再次感谢您的回复,但希望这些答案对真正有心理能力来设置这些东西的人有用!

【问题讨论】:

  • 帖子不清楚。你到底想要什么?请编辑原帖。
  • TorotiseSVn 是所有平台上最好的 SVN GUI 客户端。它不必模仿任何东西。
  • 你说得对,对不起,我已经更新了第一个帖子,希望现在更清楚一点。
  • 对于您想要做的事情,您需要 BeyondCompare、SecondCopy 等。或 WinMerge。
  • 但是,您仍然应该在您的一个文件夹上使用 SVN,可能是测试。因此,您在该文件夹上有版本历史记录,您可以返回,比较转速等...但是当您准备好升级到生产环境时,您可以使用 WinMerge(或任何您想要的同步)将当前的头部修订镜像到“live”文件夹。

标签: svn tortoisesvn


【解决方案1】:

在您对 SVN 感到困惑之前,read chapters 1-3 of this book

SVN 不是自动复制工具。它不是备份工具。这是一个修订控制系统。用它来做一些它不应该做的事情是可能的;然而,结果往往不如使用正确的工具来完成工作。

【讨论】:

    【解决方案2】:

    Subversion(使用 TortoiseSVN 或命令行)实际上并不适用于镜像之类的事情。

    您可以手动更新 /live/ 到当您提交 /test/ 时,或者考虑添加一个 Post-Commit Hook 到 TortoiseSVN 以使用客户端 Hook 脚本自动执行此操作。

    TortoiseSVN documentation

    注意: 如果您不需要编辑或更改 /live/,您可能应该查看 Subversion export 命令,而不是让 live 成为工作副本(您仍然需要手动执行此操作或添加提交后挂钩)。

    【讨论】:

      【解决方案3】:

      TortoiseSVN 是一个 Subversion 客户端。至少您需要创建一个 Subversion 存储库 来存储您的文件,然后将您的文件从 Subversion 存储库签出到您计算机上的一个目录中。我真的认为你应该读一些关于 Subversion 是如何工作的。这个book是官方参考。

      【讨论】:

        【解决方案4】:

        听起来您想要同一个分支(或主干)的两个工作副本 - 一个在 live 中,一个在 test 中。为此,请创建两个目录并在每个目录中执行您的分支(或主干)的 svn checkout(即执行两次 checkout)。确保在两个结帐中使用相同的分支(或主干)。

        当您在测试中svn commit 时,您的下一个svn update 将接受更改。

        我不确定您为什么要这样做。在您提交之前,您可以根据需要进行“实时”编辑。如果您需要对测试中的更改进行版本控制,请阅读 branching

        【讨论】:

          【解决方案5】:

          如果我理解正确的话,有存储库并且有两个工作副本,测试和实时,并且您希望实时工作副本在您提交对测试工作副本的更改时自动更新。

          没有内置功能可以指示某些工作副本在有新版本可用时自动更新。更新总是手动完成。

          我相信您实际上需要某种“部署”功能(正如名称“live”所暗示的那样)。部署不是 SVN 的工作。为此,您需要一些其他工具。

          【讨论】:

            【解决方案6】:

            大部分已经用缩写形式说了,我几乎可以添加任何新内容 好的。我再试试画详细的图

            首先 - 问题在术语和业务任务方面的表述很糟糕。如果 TEST 是您的 repo 的 WorkingCopy(看起来是这样)并且 LIVE 是包含内容的解压目录,与 repo 中的最新版本(HEAD)相同,那么您可以而且必须,正如@crashmstr 所写,使用 TSVN 中的 post-commit 钩子来生成新鲜存档

            • TortoiseSVN - 设置 - 钩子脚本 - 添加
            • 挂钩类型 - 提交后,WC 路径 - 测试路径,执行命令行 - /somename.bat,等待和隐藏 - 标记

            这是我的 Releaser.bat 中的相关部分(我在每次提交后使用自定义名称构建存档,因此使用 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 命令行客户端的存在,但价格公道

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-08-31
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多