svn存储库设置

| 我正在尝试为我的课程项目在FreeBSD系统上建立存储库。代码在〜/ OSI中,然后键入以下命令:
   % svnadmin create ///home/SVN/repo
   % svn co file:///home/SVN/repo
   % cd ~/OSI
   % chmod -R u+w include
   % svn add include
然后错误“。”不是工作副本。我必须先将〜/ OSI导入/ home / SVN / repo吗?     
已邀请:
% svnadmin create ///home/SVN/repo
% svn co file:///home/SVN/repo
% cd ~/OSI
您对Subversion存储库目录和工作目录之间的差异完全感到困惑。我教Subversion很久了,这是最常见的事情。您不能将Subversion存储库用作工作目录。您必须重新开始,因为您可能已经损坏了存储库结构。 一步一步来。 Subversion Server在您的存储库中存储了存储库中所有文件的所有版本。你不要碰。您甚至可能不知道它在哪里,甚至可能不在您的本地计算机上。 您的工作目录包含存储库特定修订版的副本。这是通过Subversion客户端完成的。这是您执行所有操作的地方,它位于本地计算机上,通常位于
$HOME
下的目录中。 因此,首先您需要创建一个存储库。为此使用
svnadmin
命令。该命令向存储库添加内容。该命令是:
$ svnadmin create <directoryName>
请注意,命令中没有URL。实际上,“ 3”从不采用URL,而只是采用本地计算机上的物理文件。
svnlook
命令也是如此。这些在服务器上运行。对于您的情况,您想这样做:
$ rm -rf /home/SVN/repo    #Remove the old copy if its still there.
$ svnadmin create /home/SVN/repo
前面只需要一个斜杠。这是目录的名称。您也可以这样做:
$ cd /home/SVN
$ svnadmin create repo
甚至这个:
$ svnadmin create ~SVN/repo   #Hope you have write access in this dir!
我强烈建议您将“ 10”用作Subversion存储库服务器。这样可以更轻松地输入URL。另外,它还有助于您将自己与存储库位置分开。初学者发现它不那么令人困惑。 为此,您需要做两件事: 编辑/home/SVN/conf/svnserve.conf文件。 创建一个/ hone / SVN / conf / passwd文件。 首先,编辑
svnserve.conf
文件。您需要修改两行: 将有两行(在我的文件版本中为11和12)如下所示:
# anon-access = read
# auth-accesss = write
从前面卸下ѭ13。实际上,这是默认设置,因此实际上没有关系。如果这是您的个人仓库,则可以将
anon-access
更改为
write
。这样,您无需登录。我个人都将它们保持原样。 在#20行周围是这样的:
# password-db = passwd
再次从行的前面移去ѭ13。而已。保存此文件。 现在,在同一目录中,编辑
passwd
文件。在
[Users]
线下,输入以下内容:
 david = swordfish
david
是您的用户ID。我建议您使其与Unix ID相同。
swordfish
是密码。随心所欲。如果希望其他人能够访问此存储库,只需将它们放在此处(每行一个用户),格式与您的用户名和密码相同。保存
passwd
文件。您将无需再触摸这些文件。 现在,我们将开始ѭ10。每当您重新启动系统时,都需要执行此操作。您甚至可能希望将启动脚本放在/etc/init.d目录下:
$ svnserve -r /home/SVN/repo -d
(一个小细节。确保运行
svnserve
的用户拥有目录和
/home/SVN/repo
下的所有文件。否则,Otherwise10ѭ命令将无法读取/写入所需的文件。在您的用户ID下,应该可以)。 就是这样,现在您可以转到其他地方并创建工作目录。在您的HOME目录下执行此操作。假装
/home/SVN/repo
甚至不存在。
 $ cd $HOME
 $ svn co svn://localhost my_workdir
 $ cd my_workdir
 $ svn mkdir trunk tags branches     #Why the hell not?
 $ svn commit -m \"Made the basic directory layout\"
可能会要求您输入密码。只需将它放入
passwd
文件中使用的文件中即可。您刚刚完成的工作就是创建您的第一次提交。您创建了三个基本目录
trunk
branches
tags
。您需要这样做吗?不。 请注意,您位于
~/my_workdir
,而不是
/home/SVN/repo
。注意,因为我使用的是
svnserve
,所以我什至没有提到该目录。 ѭ27是服务器的目录。你不要碰!正如我所说,作为客户,这很有可能-您甚至都不知道它的位置。 现在,您的导入:
 $ cd trunk
 $ cp ~/OSI .
 $ svn add -R OSI
哇!不
svn import
不,我们有一个工作目录(
~/my_workdir
),因此我们只需添加文件即可。 Subversion的“ 42”命令将递归添加到“ 43”目录以及所有文件和子目录中。您可以运行
svn status
命令并验证是否已添加所有文件。 现在,您要做的就是提交更改:
 $ svn commit -m\"Added in OSI files\"
请注意,我仅对
svn co
命令需要URL
svn://localhost
。我的工作目录已经知道从中检出的URL。您可以运行
svn info
并查看该信息。 现在,尝试以下方法:
 $ cd ~
 $ rm -rf my_workdir
我们已经完全删除了您刚才所做的所有工作。但是,Subversion存储库仍然具有它。让我们再次检查一下:
 $ svn co svn:/localhost/trunk/OSI
这将创建一个
OSI
目录,其中包含您已导入到Subversion存储库中的所有OSI。这是您的新工作目录。注意,我指定了trunk / OSI。现在,您可以在那里完成所有工作,并提交所有更改。 我希望这可以帮助您澄清问题。现在,阅读在线Subversion用户指南。现在,您已经完成了这些工作,您会发现开始的章节更加有意义。     
是。请参阅http://svnbook.red-bean.com/en/1.5/svn.tour.importing.html。     
        您问题的答案是“是”,您需要先将〜/ OSI导入/ home / SVN / repo。 将文件夹导入SVN存储库后,您可以删除OSI目录,并从存储库中签出新的工作空间,然后继续下一步。
% svn import ~/OSI file://home/SVN/repo/trunk
% rm -rf ~/OSI
% svn co file://home/SVN/repo/trunk/OSI
% cd ~/OSI
    

要回复问题请先登录注册