SVN - 如何在/ trunk和/ tag文件夹中进行文件修订?

时间:2011-03-30 06:26:09

标签: svn

我有一个.NET项目,并使用VisualSVN Server和tortoiseSVN Client。 有时当我完成一项任务,并且我确保生产使用的稳定性时,我将执行以下操作:

1.打开repo-browser,删除/ trunk中的所有文件。 2.从我的本地项目导入最新的副本到/ trunk。 3.切换到/ tag,使用datetime创建文件夹名称(例如2011.03.30),然后再次从本地项目导入最新的副本。

然而,/ tag中的文件,修订版比/ trunk更新。 但两个设置文件都是一样的。

所以我的问题是,如何使它们一致?

或者我的步骤错了?

据我所知/ trunk是当前版本,甚至稳定或正在开发中。 / tag用于稳定构建。

3 个答案:

答案 0 :(得分:3)

你的步骤都错了。您应该分支主干,然后从分支机构检出新的工作区。进行编辑并提交到分支。稍后您将分支合并回主干。

答案 1 :(得分:2)

除了@Keith写的内容之外,您还需要了解SVN中的修订号:它们有点像对整个存储库所做的更改的计数器。有像CVS这样的版本控制系统可以在文件级别上运行,并且可以在分支之间同步文件的版本号,但在SVN中,您可以创建副本以创建分支。这是对存储库的修改,因此您将获得新版本。

如果你没有删除并重新创建,而是使用普通的SVN副本,那么你根本不需要知道任何修订号,因为你可以在相应文件的SVN日志中看到它们何时何地“分支”

答案 2 :(得分:2)

在制作发行版时不要删除/ trunk(为什么你认为这是必要的,你丢失了每个文件的历史记录?)。将当前工作提交到repo(主干),创建一个新的标记文件夹(datetime,如果您愿意),并使用svn copy将最后一个主干修订复制到标记文件夹。例如,以下是我正在使用的标记脚本的基本行:

svn copy %SVNREPOSITORY%/ProjectFolder/trunk %SVNREPOSITORY%/ProjectFolder/tags/%NEWTAG% -m"Version %NEWTAG%"

如果您想确保/ trunk不包含任何不需要的文件,请在回购中不再需要时删除它们,而不是以后删除它们。