我有一个.NET项目,并使用VisualSVN Server和tortoiseSVN Client。 有时当我完成一项任务,并且我确保生产使用的稳定性时,我将执行以下操作:
1.打开repo-browser,删除/ trunk中的所有文件。 2.从我的本地项目导入最新的副本到/ trunk。 3.切换到/ tag,使用datetime创建文件夹名称(例如2011.03.30),然后再次从本地项目导入最新的副本。
然而,/ tag中的文件,修订版比/ trunk更新。 但两个设置文件都是一样的。
所以我的问题是,如何使它们一致?
或者我的步骤错了?
据我所知/ trunk是当前版本,甚至稳定或正在开发中。 / tag用于稳定构建。
答案 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不包含任何不需要的文件,请在回购中不再需要时删除它们,而不是以后删除它们。