提交到SVN存储库的本地副本

时间:2009-07-09 23:39:44

标签: svn version-control

我已经查看了在Google代码上托管的项目的副本。我将对其进行更改,并且我希望将这些版本控制保存在本地计算机上的存储库中。

我想尽可能使用svn,因为我已经了解了创建存储库,签出和提交的基础知识。

我可以使用svn执行此操作,还是应该查看已分发的版本控制?我使用的是Linux,而不是Windows。

6 个答案:

答案 0 :(得分:6)

我非常高兴使用svn对抗远程存储库+使用mercurial或git作为svn repo顶部的本地存储库。

它们都是分布式的源代码控制工具,我喜欢它们的原因略有不同。

我发现使用我自己的本地仓库与远程subversion存储库一致非常强大......

<强>更新

虽然我非常喜欢从谷歌代码导出并导入到本地仓库的答案,但我真正喜欢svn和git / mercurial的组合是你可以定期进行svn更新以获取最新代码谷歌,然后到git提交或hg提交将最新的代码添加到您的本地仓库。

比定期对您的仓库进行svn导出以获取更新要简单得多。

此外,使用git / mercurial,您可以使用强大的分支/修补工具,svn不会那么容易。

答案 1 :(得分:3)

YES!请使用版本控制工具。 SVN使用起来非常简单,所以我建议。

可能有用的一件事是你可以使用Eclipse + PyDev(对于python)+ Subeclipse(对于你的SVN)。这应该是一个很好的平台独立堆栈,它会赢得一个支持gui的SVN客户端。请务必查看大多数Eclipse软件包附带的插件Mylyn - 它确实非常棒。

Windows用户的替代方案是TortoiseSVN - 按照他们的教程创建存储库。

单个用户最简单的方法是使用“文件”协议。设置一个合适的SVN服务器稍微困难一些,你可能想要推迟,直到你更好地理解SVN - 它允许你在多台机器上工作。

答案 2 :(得分:2)

SVN是一个非常好的版本控制系统。它被用于许多重要的项目中,并且易于使用,同时具有强大的选项。

如果您的本地副本指向Google代码。您可以执行导出,它基本上取出版本控制信息,然后将其导入本地SVN。

这个测量你将失去所有以前的历史,并将从头开始,并从那时开始有关你在本地做出的改变并提交给你的SVN的历史。

如果您需要在本地SVN中保留Google代码中所有提交的历史记录,请告知我们,因为可以这样做。

如果您还需要在某些时候将本地代码提交回Google代码,请告诉我们,以解释如何执行此操作。

希望这有帮助。

答案 3 :(得分:1)

svn commit会将您的更改提交到(远程)存储库。如果你想在推送到远程存储库之前在本地办理登机手续(如果有的话),那么就像git或mercurial这样的分布式工具就是你想要的。

答案 4 :(得分:1)

您可以使用

创建本地存储库
svnadmin create repositoryName

然后你可以使用常规的svn命令进行第一次结账。

svn checkout file:///path/to/your/repositoryName

只需确保您实际导出的是您通过Google代码而不是svn结帐获得的项目。否则,您将遇到已存在于另一个存储库的.svn文件的问题。获取从导出中获取的所有文件,并将它们移动到新创建的本地副本,将所有文件添加到svn并提交。

如果您想要移植更改,只需

svn update

包含Google代码存储库的签出版本的目录,覆盖您已更改的所有文件(或使用差异进行更改),然后提交回存储库。

答案 5 :(得分:1)

svnadmin create project-local-repo
svn checkout file:///path/to/project-local-repo project-branch
svn export http://PROJECT.googlecode.com/svn/trunk/ project-branch

这将(应该)在您的机器上的project-local-repo中为您的分支创建一个新的存储库,并从该存储库签出到project-branch文件夹中。然后,它会将主存储库中文件的干净副本导出到项目分支文件夹中。然后你只需要将这些文件添加到(本地)repo并提交,你应该好好去。尽管如此,这完全是未经测试和假设的。