这就是我想要做的。我在/ var / www / project中有一个项目。我想在这个项目中使用svn。我已经在我的debian服务器上安装了SVN用于此目的,但我不明白如何使用它和谷歌搜索让我更加困惑。我想创建一个repository / var / svn / project并使用它。发生一些变化后,我想将所有代码导出回/ var / www / project。现在这就是我所做的:
一切似乎都运行良好,但是......如果我去/ var / svn / project,我的项目或任何子目录中都没有源文件。虽然svn客户端能够检出所有这些文件。所以我在svn中读到,文件不是分别存储在berkley db和fsfs文件系统中。那么问题是......如何将源导出回/ var / www / project?如果我在/ var / svn / project目录下执行svn export命令,它说我不在工作副本中:(
答案 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。