使用绝对路径的项目上的SVN管理

使用绝对路径的项目上的SVN管理,svn,version-control,tortoisesvn,Svn,Version Control,Tortoisesvn,我以前听说在源代码管理中包含项目和工作区/解决方案文件通常都是不好的做法,但我想得到关于处理这种情况的最佳方法的反馈 我的工作要求我为我的部门建立一个源代码管理服务(从3年前的第1天起我就一直在要求这个服务)。我最大的障碍如下 我们在网络SMB共享上保留最新版本的快照,使用标记并手动更新它?是否可以由多人同时维护此工作副本,或者文件夹是否仅与创建者关联 我们所有的“项目”文件(包含文件清单、构建信息等)都使用绝对路径。如果我使用c:\myproject,而同事使用c:\MaiPrjLolKeke

我以前听说在源代码管理中包含项目和工作区/解决方案文件通常都是不好的做法,但我想得到关于处理这种情况的最佳方法的反馈

我的工作要求我为我的部门建立一个源代码管理服务(从3年前的第1天起我就一直在要求这个服务)。我最大的障碍如下

我们在网络SMB共享上保留最新版本的快照,使用标记并手动更新它?是否可以由多人同时维护此工作副本,或者文件夹是否仅与创建者关联


我们所有的“项目”文件(包含文件清单、构建信息等)都使用绝对路径。如果我使用c:\myproject,而同事使用c:\MaiPrjLolKeke,这真是一件痛苦的事情。我听到过各种反对使用源代码管理的观点,但是,如果项目中添加了一个新文件,那么通知同事可能需要添加新文件的最佳方式是什么?

问题不在于源代码中的项目文件。问题在于项目文件中的硬编码路径

您可以为此使用相对路径或环境变量

例如,您可以对包含文件使用公共“根”,对其他第三方库使用公共“根”。这些根下的层次结构应该是相同的

这在我工作过的许多地方都被广泛使用,通常情况下,您可以通过它指向第三方库。它还解决了在一台机器上拥有一组文件的多个版本的问题。通过更改一个环境变量(在构建脚本中或以其他方式),您可以满足特定的目标/构建

至于你的另一个问题,你说的并不十分清楚。我想你是在问是否有多个人签出到同一共享路径/网络共享。这不是一个好主意。所有人都可以拥有自己的源文件工作集/工作副本,默认情况下,SVN不会“锁定”文件,以便您可以同时处理它们。你不必去实践更新/获取最新的源代码/更改

编辑-正如另一张海报所说(我在这里重复,这样你就不会错过了)-

源代码管理中的解决方案和/或项目文件不是一种坏做法。

编辑:

这里有另一个解决方案——不确定是否有其他人已经提出了

创建到路径结构中其他位置的映射,并使其成为网络驱动器,如x:\

如果每个人都这样做,他们可以保持自己喜欢的目录结构,并且仍然使用相同的项目文件。不需要假的

例如,如果开发人员A

C:\development\project\blah 将X:\project映射到c:\development\project

开发者2拥有: C:\my documents\user\Visual studio\etc…,她将X:\映射到该路径

中提琴


C:\

问题不在于源代码中的项目文件。问题在于项目文件中的硬编码路径

您可以为此使用相对路径或环境变量

例如,您可以对包含文件使用公共“根”,对其他第三方库使用公共“根”。这些根下的层次结构应该是相同的

这在我工作过的许多地方都被广泛使用,通常情况下,您可以通过它指向第三方库。它还解决了在一台机器上拥有一组文件的多个版本的问题。通过更改一个环境变量(在构建脚本中或以其他方式),您可以满足特定的目标/构建

至于你的另一个问题,你说的并不十分清楚。我想你是在问是否有多个人签出到同一共享路径/网络共享。这不是一个好主意。所有人都可以拥有自己的源文件工作集/工作副本,默认情况下,SVN不会“锁定”文件,以便您可以同时处理它们。你不必去实践更新/获取最新的源代码/更改

编辑-正如另一张海报所说(我在这里重复,这样你就不会错过了)-

源代码管理中的解决方案和/或项目文件不是一种坏做法。

编辑:

这里有另一个解决方案——不确定是否有其他人已经提出了

创建到路径结构中其他位置的映射,并使其成为网络驱动器,如x:\

如果每个人都这样做,他们可以保持自己喜欢的目录结构,并且仍然使用相同的项目文件。不需要假的

例如,如果开发人员A

C:\development\project\blah 将X:\project映射到c:\development\project

开发者2拥有: C:\my documents\user\Visual studio\etc…,她将X:\映射到该路径

中提琴


C:\

设置生成文件以使用相对路径

理想情况下,您应该能够随时从SVN签出副本(并将副本签入任何文件夹),运行构建脚本,运行自动测试,然后立即启动并运行。如果你做不到这一点,你就做错了


(是的,您可能还需要首先设置操作系统、数据库服务器、web服务器、编程语言和IDE。但是,一旦全球基础设施已经存在,您应该能够在任何时间和任何位置启动运行。)

设置构建文件以使用相对路径

理想情况下,您应该能够随时从SVN签出副本(并将副本签入任何文件夹),运行构建脚本,运行自动测试,然后立即启动并运行。如果你做不到这一点,你就做错了

(是的,您可能还需要首先设置操作系统、数据库服务器、web服务器、编程语言和IDE。但是,一旦全球基础设施已经存在,您就应该能够在任何时间、任何地点开始运行。)

如果您有ha