我在linux服务器上运行SVN服务器。我出城一周没有上网,因此无法访问SVN。
所以我试图弄清楚如何在我的笔记本电脑上随身携带存储库的快照,然后在我回来时将新版本合并回现有存储库...
我的笔记本电脑运行Windows 7,所以首先,我认为VisualSVN Server可能是我将在本地运行的服务器。
我应该能够转储当前的存储库,然后将其加载到笔记本电脑上的新存储库中
但我不确定的是,当我从城外回来时。我将在笔记本电脑上的SVN服务器上进行所有这些新修订。如何转储然后仅将这些新修订版加载到我的linux服务器上的存储库中?
如果我使用>svnadmin dump --revision 50:75
(假设修订版50到75表示我在笔记本电脑上进行的新修订),我可以简单地将该转储文件加载到我的Linux服务器上的现有存储库中吗?这很容易吗?我知道有一些关于存储库UUID的东西可能会导致一些问题......
还有一点需要注意,我是目前唯一为此SVN存储库做贡献的开发人员。因此,不需要代码合并。
更新
我不知道我只能使用file:///
在本地访问存储库。所以这可能比运行 VisualSVN Server 更好。但是,主要问题仍然存在:如何将新版本从一个存储库获取到另一个存储库?
答案 0 :(得分:2)
如果您是唯一的开发人员,也许您可以随身携带存储库。
在您离开时使用file:///协议访问它,然后在您返回时将其放回服务器上。 。
答案 1 :(得分:1)
从存储库中提取一组修订版本(nn到mm):
svnadmin dump --incremental -r nn:mm /path/to/repository > /path/to/dumpfile.svn
--incremental
选项允许您合并这组更改,而不会将整个基线与导入一起使用。
将这些修订应用于存储库:
svnadmin load --ignore-uuid /path/to/repository < /path/to/dumpfile.svn
--ignore-uuid
选项允许导入从源存储库中删除uuid信息。
我会将此操作限制为具有通用修订版本的存储库,否则加载可能会失败。
答案 2 :(得分:0)
我建议您在本地工作副本之上创建一个git或mercurial本地存储库。
您可以将.svn文件夹和工件添加到.hgignore或.gitignore文件中以保持存储库清洁,然后当您返回时,您可以执行svn提交更改,或者如果您想要为你在旅途中检查mercurial / git的每一个重要工作单元做一个阶段性的提交回到颠覆。
这两个repos都可以让你很容易将自己的本地工作副本保留在版本控制中,并轻松地同步到历史记录中定义的检入点。
答案 3 :(得分:0)
一种不复杂的方法是简单地检查你需要的一切,工作一些,玩一些,多做一些工作,享受周围环境,结识新朋友,多做一些工作,然后当你回来时,提交。一个星期似乎很长一段时间没有承诺,但当我离开时,特别是那些非互联网的地方,我往往不会像我想要的那样做很多工作。
如果您需要偶尔拍摄“保存游戏”快照,WinZip可以提供帮助。