我可以在两个SVN存储库中有一个项目吗?

Eth*_*han 6 svn git

我们的IT部门不允许从物理办公室外部连接到SVN服务器.(他们就像那样.)当我不在办公室时,我需要处理项目.

我可以查看项目并等到我进入办理登机手续.也许这是最好的.但我喜欢经常入住.我想知道是否有某种方法可以将项目保存在两个存储库中并使它们保持最新状态.这样我总能在某处检查以防我的HD死机.我在VPS服务器上拥有自己的存储库,用于个人项目.

我调查了这个svn switch命令.我在repos中的当前项目中尝试将我的工作副本从个人切换到工作SVN服务器......

$ svn switch --relocate svn+ssh://personalvps.com/svn/project/trunk svn://worksvn/project/trunk
svn: The repository at 'svn://worksvn/project/trunk' has uuid '2baef97e-42ce-488c-bbba-c2625158c643', but the WC has 'f13e1f32-dc92-4c4a-b84d-34a59fe32063'
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加--username--password参数,但得到一个错误说"没有找到条目."

这甚至可能还是完全不切实际?


UPDATE

谢谢你的回答.不幸的是,任何涉及IT行动的解决方案(轻微的政策变更,在某处更改设置,安装某些东西)都不在桌面上.我必须在当前设置中找到一个解决方案,除了我们的Web服务器之外,它没有来自外部的连接.

我将看看分布式版本控制.

Dir*_*mar 11

您可以将SVN与笔记本电脑上的另一个(本地)存储库一起使用.寻找流行的git或SVK.这些允许您首先提交到本地存储库,然后将所有提交同步到主SVN存储库.


kru*_*.ar 7

你读过关于git的吗?它使用本地存储库进行离线工作,并且可以轻松地与svn repo同步.

两篇 文章解释了如何做你想做的事.

  • 当有人问"我如何用SVN做foo"时,为什么第一个回答是"使用git?" SVK工作得非常好,对SVN用户来说更为熟悉. (6认同)

Ale*_*ort 5

看看svnsync.我使用它来镜像源伪造的SVN存储库到个人盒子,所以我可以使用Trac.

http://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt

它非常易于使用,您应该能够将办公室仓库设置为同步到个人存储库.


rme*_*dor 4

作为最后的努力,您始终可以使用 SSH 在公司防火墙上挖一个漏洞。查看“ssh 隧道”(而且,想想看,“在防火墙上戳一个洞”也可能是一个不错的搜索词)。我想你会想要 -L 或 -R ssh 选项,但我不记得哪个或者即使它们肯定是正确的。如果您运行的是 Windows,那么如果您先安装 Cygwin,仍然可以使用相同的技术。

编辑:抱歉,我不太清楚这是如何工作的。您想要的选项是 -R。它在远程计算机上打开一个端口(用于侦听)。当某些东西连接到远程计算机上的该端口时,该连接会通过 SSH 连接返回到本地计算机,然后转发到您在本地网络中选择的服务器。您可以在晚上离开之前使用 SSH 从工作计算机连接到家庭计算机以打开隧道。然后,当您在家工作时,您可以将 SVN 工作副本(使用svn switch --relocate)设置为指向您的家庭计算机。顺便说一句,如果您正在运行 svnserve 守护程序,则 SVN 端口默认为 3690。

  • 他们真的不允许传出 SSH 连接吗?如果你想偷偷摸摸,我可以将你的家庭 SSH 服务器设置为在端口 443 上运行,该端口通常用于 HTTPS。我敢打赌你的防火墙会允许连接,并且因为它是加密的,所以他们无法判断它不是合法的 HTTP 流量(AFAIK)。 (2认同)