是否可以在Subversion中具有用户特定的svn:x属性(例如svn:ignore和svn:externals)?
我和我的合作者经常发现,我们希望能够为自己的项目工作副本设置不同的svn:ignore和svn:externals属性。与属性相关的svn功能似乎不需要对这些属性进行版本控制,但我们还没有找到一种方法来对这些属性进行版本控制 否,属性特定于设置它们的文件/目录。用户特定的属性不存在 为什么需要不同的svn:外部?处理这个问题的一种方法是在存储库中拥有自己的目录,其中只包含外部内容。这样,您就可以控制自己的外部设置是否可以在Subversion中具有用户特定的svn:x属性(例如svn:ignore和svn:externals)?,svn,Svn,我和我的合作者经常发现,我们希望能够为自己的项目工作副本设置不同的svn:ignore和svn:externals属性。与属性相关的svn功能似乎不需要对这些属性进行版本控制,但我们还没有找到一种方法来对这些属性进行版本控制 否,属性特定于设置它们的文件/目录。用户特定的属性不存在 为什么需要不同的svn:外部?处理这个问题的一种方法是在存储库中拥有自己的目录,其中只包含外部内容。这样,您就可以控制自己的外部设置 存储库的约定和布局是您必须同意的。Subversion实际上不允许用户自定义他们对
存储库的约定和布局是您必须同意的。Subversion实际上不允许用户自定义他们对存储库的视图。否,属性特定于他们设置的文件/目录。用户特定的属性不存在
svn co svn://localhost/local-externals
svn pe svn:externals local-externals
...
svn commit local-externals
为什么需要不同的svn:外部?处理这个问题的一种方法是在存储库中拥有自己的目录,其中只包含外部内容。这样,您就可以控制自己的外部设置
存储库的约定和布局是您必须同意的。Subversion实际上不允许用户自定义他们对存储库的视图。要取消这些属性的版本,请将它们从附加到的文件夹或文件中删除(然后提交)。如果您使用的是命令行,则可以使用“svn propdel”删除它们
svn co svn://localhost/local-externals
svn pe svn:externals local-externals
...
svn commit local-externals
存储在服务器上,它们不是工作副本构造,因此不能为不同的用户设置相同的属性
为了获得同一代码的不同“视图”,您可能希望查看,而是每个人都处理自己的分支,并定期将更改合并到主干中。这听起来像是您试图实现的工作流,每个用户具有不同的属性
要以不同的方式查看svn:ignore,您可以在客户端上设置不同的“”。要取消这些属性的版本,请将它们从附加到的文件夹或文件中删除(然后提交)。如果您使用的是命令行,则可以使用“svn propdel”删除它们 存储在服务器上,它们不是工作副本构造,因此不能为不同的用户设置相同的属性 为了获得同一代码的不同“视图”,您可能希望查看,而是每个人都处理自己的分支,并定期将更改合并到主干中。这听起来像是您试图实现的工作流,每个用户具有不同的属性 要以不同的方式查看svn:忽略,您可以在客户端上设置不同的“”。哈哈哈 获取特定于用户(实际上是特定于工作站)的svn:externals的完全不切实际的解决方案: 首先,让每个开发人员在自己的机器上创建一个subversion存储库,并运行一个小的svnserve实例以使其可访问
svn://localhost/local-externals
让每个开发人员在所述存储库的根目录上设置perferred svn:externals属性
svn co svn://localhost/local-externals
svn pe svn:externals local-externals
...
svn commit local-externals
在中央存储库中,包括对的svn:externals引用svn://localhost/local-externals
svn co svn://example.com/repo/project/trunk
svn pe svn:externals
... define an reference to svn://localhost/local-externals
svn commit trunk
现在,每个签出主干的开发人员都将从本地externals存储库中获取externals目录,而本地externals存储库又可以将他们希望包含在签出中的主存储库的部分拉入
你可以做到这一点,但我想我会认为我自己很愚蠢,即使考虑到这一点。 < MuHaaHaHaHA!
获取特定于用户(实际上是特定于工作站)的svn:externals的完全不切实际的解决方案:
首先,让每个开发人员在自己的机器上创建一个subversion存储库,并运行一个小的svnserve实例以使其可访问
svn://localhost/local-externals
让每个开发人员在所述存储库的根目录上设置perferred svn:externals属性
svn co svn://localhost/local-externals
svn pe svn:externals local-externals
...
svn commit local-externals
在中央存储库中,包括对的svn:externals引用svn://localhost/local-externals
svn co svn://example.com/repo/project/trunk
svn pe svn:externals
... define an reference to svn://localhost/local-externals
svn commit trunk
现在,每个签出主干的开发人员都将从本地externals存储库中获取externals目录,而本地externals存储库又可以将他们希望包含在签出中的主存储库的部分拉入
你可以做到这一点,但我认为我甚至会认为自己是个疯狂的人。如果您想实现您的目标,您会在文件系统中做什么?你们每个人都会在某个地方创建原始文件的副本 您可以对Subversion(
svn copy
)执行相同的操作。在新子目录中设置的属性仅对这些子目录有效,而对原始文件无效
但是有一个代价:您现在必须手动同步(合并)您的更改(就像您在没有subversion的本地文件系统中这样做一样)
我不知道有哪家VCS可以免费提供您想要的东西。将SVN视为一个文件系统。如果您想实现您的目标,您会在文件系统中做什么?你们每个人都会在某个地方创建原始文件的副本 您可以对Subversion(
svn copy
)执行相同的操作。在新子目录中设置的属性仅对这些子目录有效,而对原始文件无效
但是有一个代价:您现在必须手动同步(合并)您的更改(就像您在没有subversion的本地文件系统中这样做一样)
我不知道有哪家风投可以免费满足您的需求。谢谢!正如你所说,我可能不会走这么远,但我喜欢创造性思维和邪恶的笑声。谢谢!正如你所说,我可能不会走这么远,但我喜欢创造性思维和邪恶的笑声。谢谢!这是对我问题的一个很好的回答。它看起来真的像我