Subversion(svn)初学者的问题

时间:2010-04-16 13:31:35

标签: svn

这就是我想要做的。我在/ var / www / project中有一个项目。我想在这个项目中使用svn。我已经在我的debian服务器上安装了SVN用于此目的,但我不明白如何使用它和谷歌搜索让我更加困惑。我想创建一个repository / var / svn / project并使用它。发生一些变化后,我想将所有代码导出回/ var / www / project。现在这就是我所做的:

  • 我创建了一个存储库:svnadmin create / var / svn / project
  • 我导入了代码:svn import / var / www / project file:/// var / svn / project -m“Initial import”
  • 我已经使用“Versions”客户端
  • 检出了代码

一切似乎都运行良好,但是......如果我去/ var / svn / project,我的项目或任何子目录中都没有源文件。虽然svn客户端能够检出所有这些文件。所以我在svn中读到,文件不是分别存储在berkley db和fsfs文件系统中。那么问题是......如何将源导出回/ var / www / project?如果我在/ var / svn / project目录下执行svn export命令,它说我不在工作副本中:(

7 个答案:

答案 0 :(得分:3)

首先,你是正确的,SVN使用数据库结构来存储(更改)你的文件,所以你不应该期望在存储库文件夹中看到原始文件。

一旦你创建了一个存储库,你几乎不需要在该目录中做任何其他事情,除了配置资料(例如用户授权)。

您的所有工作都应该在工作副本目录中继续。

要将代码放入www文件夹类型:

cd /var/www/project
svn checkout /var/svn/project

现在您可以根据需要编辑该工作目录(/var/www/project)中的代码。如果要提交这些更改,请键入

svm commit -m "Commit message"

更改将返回存储库。

答案 1 :(得分:1)

首先,我建议http://svnbook.red-bean.com/作为参考。

您想从您的仓库导出到您的位置。您可以通过以下方式实现此目的:

svn export file:///var/svn/project /var/www/project

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

答案 2 :(得分:0)

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

如果您想直接从>您的存储库导出,请使用svn export file:/// tmp / repos my-export

答案 3 :(得分:0)

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

答案 4 :(得分:0)

查看来源(创建工作目录),然后在签出副本中使用svn export将其导出到其他位置。

答案 5 :(得分:0)

Svn将文件保存在自己的数据库系统中。如果要将/ var / www / project中的代码替换为导出版本,则必须在工作副本上调用export。 您应该考虑删除/ var / www / project(先备份!)并将其替换为wokring副本。

答案 6 :(得分:0)

您可以考虑使用分布式版本控制系统,例如Mercurial

它与subversion一样容易使用。事实上,当repo在本地文件系统(而不是服务器)上时可能会更好,因为我的一位同事说svn正在弃用FSFS存储(我找不到这方面的参考)。

有关mercurial的信息,请参阅以下链接。我希望我从不打扰svn。

http://hgbook.red-bean.com/read/