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