Subversion(svn)初学者';s问题

Subversion(svn)初学者';s问题,svn,Svn,这就是我要做的。我在/var/www/project中有一个项目。我想在这个项目中使用svn。为此,我在debian服务器上安装了SVN,但我不知道如何使用它,谷歌搜索让我更加困惑。我想创建一个存储库/var/svn/project并使用它。在发生一些更改之后,我想将所有代码导出回/var/www/project。下面是我所做的: 我已经创建了一个存储库:svnadmincreate/var/svn/project 我已经导入了代码:svn import/var/www/projectfile

这就是我要做的。我在/var/www/project中有一个项目。我想在这个项目中使用svn。为此,我在debian服务器上安装了SVN,但我不知道如何使用它,谷歌搜索让我更加困惑。我想创建一个存储库/var/svn/project并使用它。在发生一些更改之后,我想将所有代码导出回/var/www/project。下面是我所做的:

  • 我已经创建了一个存储库:svnadmincreate/var/svn/project
  • 我已经导入了代码:svn import/var/www/projectfile:///var/svn/project -m“初始导入”
  • 我已经用“版本”客户端签出了代码

一切似乎都很好,但是。。。如果我转到/var/svn/project,那里或任何子目录中都没有来自我的项目的源文件。尽管svn客户端能够签出所有这些文件。所以我读到在svn中,文件不是单独存储在berkley db或fsfs文件系统中的。那么问题是。。。如何将源文件导出回/var/www/project?如果我在/var/svn/project目录下执行svn export命令,它会说我不在工作副本中:(

您可以从客户端运行svn export命令,将干净的树导出到客户端或另一个存储库上的其他路径。听起来/var/svn/project就是您的存储库(服务器)


如果要直接从存储库导出,请使用svn导出file:///tmp/repos 我的导出

请确保它没有将文件放在
/var/www/project/project
中。

检查源代码(以创建工作目录),然后在您签出的副本中使用
svn export
将其导出到其他地方。

首先,我建议作为参考

您希望从回购协议导出到您所在的位置。您可以通过以下方式实现此目的:

svn导出file:///var/svn/project /var/www/project


另外值得注意的是,正如我相信您现在已经意识到的,您不能简单地转到存储库目录并查看文件,因为它们存储在该位置的数据库中,而不是松散文件。

Svn将文件保存在其自己的数据库系统中。如果您想用导出的版本替换/var/www/project中的代码,您必须调用在工作副本上导出。
你应该考虑删除/VAR/WWW/Project(备份第一!)并用WOKLIN拷贝替换它。

< P>首先,你是正确的,即VSN使用数据库结构来存储(对你的文件的更改),这样你就不应该看到存储库文件夹中的原始文件了。 一旦创建了存储库,您几乎不需要在该目录中执行任何其他操作,除了配置内容(例如用户授权)

您的所有工作都应该在工作副本目录中进行

要将代码放入
www
文件夹,请键入:

cd /var/www/project
svn checkout /var/svn/project
现在,您可以根据需要编辑该工作目录(
/var/www/project
)中的代码

svm commit -m "Commit message"

并且更改将返回到存储库。

可以考虑使用分布式版本控制系统,如.< /p> 它和subversion一样易于使用。事实上,当repo位于本地文件系统(而不是服务器)上时可能会更好,因为我的一位同事说svn不推荐FSFS存储(我找不到这方面的参考资料)

有关mercurial的信息,请参阅下面的链接。我希望我从未为svn烦恼过


您可以从主题中考虑这一点,但我强烈建议您,除非您有严格的要求,避免使用VPN作为版本控制系统,并尝试使用分布式系统(Git、Burk、Myuri……)。。这可能会大大简化您的生活,因为您不再需要处理svn服务器。对于初学者来说,svn没有任何问题。它比我遇到的任何分布式系统都容易学习。谢谢,丹。我终于成功地使导出命令起作用了。也许我第一次做错了什么;]+1哈哈,the第一个实际显示checkout命令(我认为这是正确的答案)