Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保持SVN本地副本干净-我做错了吗?_Svn_Tortoisesvn - Fatal编程技术网

保持SVN本地副本干净-我做错了吗?

保持SVN本地副本干净-我做错了吗?,svn,tortoisesvn,Svn,Tortoisesvn,我上次使用SVN已经有一段时间了。在我签出的本地副本\myproject\中,IDE生成了一些子目录,如\bin\,但在签出SVN后,SVN创建了\trunk\,\branch\等等 我觉得有点乱。我宁愿我的所有文件都与这些子目录分开;这是标准吗?如果没有,除了将我自己的所有文件转储到另一个子目录\dev\?trunk,标记和分支是标准的Subversion目录,我还能做些什么来更改它呢。幸好你没有填满你的磁盘驱动器检查整个回购,以及所有的分支 Subversion使用所谓的。这意味着分支实际上

我上次使用SVN已经有一段时间了。在我签出的本地副本
\myproject\
中,IDE生成了一些子目录,如
\bin\
,但在签出SVN后,SVN创建了
\trunk\
\branch\
等等


我觉得有点乱。我宁愿我的所有文件都与这些子目录分开;这是标准吗?如果没有,除了将我自己的所有文件转储到另一个子目录
\dev\

trunk
标记和
分支
是标准的Subversion目录,我还能做些什么来更改它呢。幸好你没有填满你的磁盘驱动器检查整个回购,以及所有的分支

Subversion使用所谓的。这意味着分支实际上是存储库中的目录,而不是文件中的某种元数据。其优点包括可见的分支名称(您可以通过
svn ls
轻松查看所有分支)、版本控制的完整元数据功能(您可以查看谁创建了分支、何时、为什么以及从何处创建分支),这意味着分支整个项目,而不是每个文件的分支方案

另外,与其他版本控制元素一样,您可以删除分支而不销毁它。这意味着您可以删除过时的分支(或者如果愿意,将它们移动到过时的目录),并且列出的分支将仅为当前和活动分支。您还可以使用钩子来控制分支

缺点是人们会意外地签出所有的分支(在Subversion的情况下)所有的标记,以及主主干,这会花费很长时间并阻塞用户的磁盘。另一个缺点是语法对于比较来说有点古怪

用于比较1.34分支和1.35分支的CVS语法: 用于比较1.34分支和1.35分支的SVN语法: 您可以使用一些环境变量来缩短此过程:

$ REPO=http://svn.vegicorp.com/svn
$ svn diff $REPO/branches/1.34 $REPO/branches/1.35
但是,你仍然可以看到它需要更多的打字。您必须指定两个完整的存储库URL,而不仅仅是指定两个分支名称

让我们回到你的错误:你所做的是这样的:

$ svn co http://svn.vegicorp.com/svn 
因为有人告诉您存储库位于
http://svn.vegicorp.com/svn
。如果我不知道Subversion,我可能也会这么做。但是,这将签出主干和所有已创建的分支,以及所有已创建的标记。这可能需要很长时间才能签出并阻塞您的磁盘。如果我在我的存储库中这样做,我的500G硬盘上将有大约3或4TB的数据。您可以看到,这将导致一些磁盘空间问题

如果要签出中继,则需要在签出命令中包含Subversion URL的该部分:

svn co http://svn.vegicorp.com/svn/trunk
$ svn co http://svn.vegicorp.com/svn/branches/1.34.2
如果要签出1.34.2分支,请在签出命令的Subversion URL中包含该分支:

svn co http://svn.vegicorp.com/svn/trunk
$ svn co http://svn.vegicorp.com/svn/branches/1.34.2
请注意,URL不仅包括存储库名称,还包括要签出的分支或主干

您也可以签出特定的标记。假设您想签出4.3版本:

$ svn co http://svn.vegicorp.com/svn/tags/4.3
如果要查看所有分支(或活动分支,如果站点在分支过时时对其进行修剪)的列表:


希望这能澄清您的情况。

trunk
标记和
分支是标准的Subversion目录。幸好你没有填满你的磁盘驱动器检查整个回购,以及所有的分支

Subversion使用所谓的。这意味着分支实际上是存储库中的目录,而不是文件中的某种元数据。其优点包括可见的分支名称(您可以通过
svn ls
轻松查看所有分支)、版本控制的完整元数据功能(您可以查看谁创建了分支、何时、为什么以及从何处创建分支),这意味着分支整个项目,而不是每个文件的分支方案

另外,与其他版本控制元素一样,您可以删除分支而不销毁它。这意味着您可以删除过时的分支(或者如果愿意,将它们移动到过时的目录),并且列出的分支将仅为当前和活动分支。您还可以使用钩子来控制分支

缺点是人们会意外地签出所有的分支(在Subversion的情况下)所有的标记,以及主主干,这会花费很长时间并阻塞用户的磁盘。另一个缺点是语法对于比较来说有点古怪

用于比较1.34分支和1.35分支的CVS语法: 用于比较1.34分支和1.35分支的SVN语法: 您可以使用一些环境变量来缩短此过程:

$ REPO=http://svn.vegicorp.com/svn
$ svn diff $REPO/branches/1.34 $REPO/branches/1.35
但是,你仍然可以看到它需要更多的打字。您必须指定两个完整的存储库URL,而不仅仅是指定两个分支名称

让我们回到你的错误:你所做的是这样的:

$ svn co http://svn.vegicorp.com/svn 
因为有人告诉您存储库位于
http://svn.vegicorp.com/svn
。如果我不知道Subversion,我可能也会这么做。但是,这将签出主干和所有已创建的分支,以及所有已创建的标记。这可能需要很长时间才能签出并阻塞您的磁盘。如果我在我的存储库中这样做,我的500G硬盘上将有大约3或4TB的数据。您可以看到,这将导致一些磁盘空间问题

如果要签出中继,则需要在签出命令中包含Subversion URL的该部分:

svn co http://svn.vegicorp.com/svn/trunk
$ svn co http://svn.vegicorp.com/svn/branches/1.34.2
如果要签出1.34.2分支,请在签出命令的Subversion URL中包含该分支:

svn co http://svn.vegicorp.com/svn/trunk
$ svn co http://svn.vegicorp.com/svn/branches/1.34.2
请注意,URL不仅包括存储库名称,还包括要签出的分支或主干

您也可以签出特定的标记。假设您想签出4.3版本:

$ svn co http://svn.vegicorp.com/svn/tags/4.3
如果要查看所有分支(或活动分支)的列表