代码之家  ›  专栏  ›  技术社区  ›  Jake Wilson

仅将某些SVN修订从一个存储库复制到另一个存储库

  •  5
  • Jake Wilson  · 技术社区  · 15 年前

    我在Linux服务器上运行SVN服务器。我要出城一个星期,去一个没有互联网接入的地方,因此没有SVN接入。

    所以我想知道如何在我的笔记本电脑上和我一起拍摄存储库的快照,然后在我回来的时候将新的修订版合并回现有的存储库…

    • 我的笔记本电脑运行Windows7,所以首先,我认为 VisualSVN Server 可能是我将在本地运行的服务器。

    • 我应该能够转储当前的存储库,然后将其加载到笔记本电脑上的新存储库中。

    • 但我不确定的是,当我从外地回来的时候。我将在我的笔记本电脑上的SVN服务器上安装所有这些新版本。如何转储这些新修订,然后只将它们加载到Linux服务器上的存储库中?

    • 如果我使用 >svnadmin dump --revision 50:75 (假设版本50到75代表我在笔记本电脑上所做的新修订),我可以简单地将该转储文件加载到我的Linux服务器上现有的存储库中吗?这容易吗?我知道有一些关于知识库UUID的东西可能会导致一些问题…

    • 还有一点要注意的是,我是目前唯一一个为这个SVN存储库做出贡献的开发人员。所以不需要合并代码。

    更新

    我不知道我可以使用 file:/// . 所以这可能比跑步更好 VisualSVN服务器 . 但是,主要的问题仍然存在:如何将新的修订从一个存储库获取到另一个存储库?

    4 回复  |  直到 15 年前
        1
  •  2
  •   William Leara    15 年前

    如果您是唯一的开发人员,也许您可以随身携带存储库。

    离开时使用文件://协议访问,然后返回时将其放回服务器。…

        2
  •  1
  •   Amardeep AC9MF    15 年前

    要从存储库中提取一组修订(nn到mm):

    svnadmin dump --incremental -r nn:mm /path/to/repository > /path/to/dumpfile.svn
    

    这个 --incremental 选项允许您合并这组更改,而不将整个基线与导入一起带来。

    To apply those revisions to a repository:

    svnadmin load --ignore-uuid /path/to/repository < /path/to/dumpfile.svn
    

    这个 --ignore-uuid 选项允许导入从源存储库中除去UUID信息。

    我会将此操作限制到具有公共修订传统的存储库,否则加载可能会失败。

        3
  •  0
  •   John Weldon user3678248    15 年前

    我建议您在本地工作副本之上创建一个Git或Mercurial本地存储库。

    您可以将.svn文件夹和工件添加到.hgignore或.gitignore文件中,以保持存储库的干净,然后当您返回时,您只需对更改进行svn提交,或者如果您希望获得幻想,请对您在路上签入mercurial/git的每个重要工作单元执行阶段性提交,以返回到subversion。

    这两个repo都使您可以很容易地将自己的本地工作副本保存在修订控制中,并轻松地同步到历史中定义的签入点。

        4
  •  0
  •   Chris Thornton    15 年前

    一个不复杂的方法是简单地检查你所需要的一切,工作一些,玩一些,工作更多,享受你的环境,遇到一些新的人,工作更多,然后当你回来,承诺。一个星期似乎是一个很长的时间,没有承诺,但当我离开,特别是那些非互联网的地方,我往往做的工作没有我预期的那么多。

    如果您需要不时拍摄“保存游戏”快照,WinZip会有所帮助。