首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Assembla时,如何从Subversion中的旧版本创建标签?

在使用Assembla时,如何从Subversion中的旧版本创建标签?
EN

Stack Overflow用户
提问于 2012-06-23 02:56:54
回答 2查看 22.6K关注 0票数 23

我使用Assembla来管理我的Subversion存储库。我已经开始对我的代码库进行一些主要的修改,并希望为我最近的生产版本创建一个标签(几周前,当我将版本live推向生产时,我忘记了这一点)。

我现在的版本是588,我想创建一个版本为577的标签。如何从命令行在Assembla中使用Subversion来执行此操作?

假设我的Assembla SVN URL是:https://subversion.assembla.com/svn/my_assembla_svn_directory/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-23 03:36:00

您可以始终使用-r参数来引用特定的修订。这样做时,您还可以使用@rev修订固定,以确保您引用的是Subversion修订在特定修订中的布局。下面的代码将从修订版577上的主干创建一个标记,并将此标记称为REV-1.2

代码语言:javascript
复制
$ svn cp -r 577 https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
    https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REV-1.2

如果您没有trunkbranchestags目录,则需要移动您的工作才能创建一些:

代码语言:javascript
复制
$ # Move the current directory to the "trunk"
$ svn cp https://subversion.assembla.com/svn/my_assembla_svn_directory \
    https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk

$ # Make a corresponding tags and branches directories too
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/branches
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/tags

$ # Now, we can delete the old location. Let your developers know this,
$ # so they're not surprised by this and will be able to do a "svn relocate"
$ svn delete https://subversion.assembla.com/svn/my_assembla_svn_directory/

$ # Whoops. I should have done the tagging when I had a chance. 
$ #Oh well, we'll use the `@rev` pinning:

$ svn -r557 cp https://subversion.assembla.com/svn/my_assembla_svn_directory@557 \
      https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REL-1.2

Subversion不实现标记和分支,除非作为副本。这并不罕见。Perforce以同样的方式实现分支。事实上,一旦你习惯了它,它就会工作得很好:

很容易看到有效的分支和标记(只需在右侧directory

  • The上做一个
  • svn ls,标记和分支的完整历史记录都很容易看到。您可以查看是谁进行了更改,何时、为什么等。
  • 将显示标记或分支的完整历史记录。如果有人更改了标记或分支,您可以非常清楚地看到是谁做的。
  • 它不鼓励您在许多其他版本控制系统中看到的乱七八糟的分支类型,当开发人员在各种分支和主干上选择分支或标记时。这使得跟踪历史记录变得非常困难。Subversion的方案鼓励您将分支和标记视为影响项目中的所有文件。
票数 51
EN

Stack Overflow用户

发布于 2012-06-23 03:04:08

直接从SVN documentation

如果要创建与HEAD修订版中的/calc/trunk完全相同的快照,请复制该快照:

$ svn copy http://svn.example.com/repos/calc/trunk \ http://svn.example.com/repos/calc/tags/release-1.0 \ -m“标记'calc‘项目的1.0版本。”提交的修订版902。

此示例假设/calc/tags目录已经存在。(如果没有,可以使用svn mkdir创建。)复制完成后,新的release-1.0目录永远是您进行复制时/trunk目录在HEAD修订版中的外观的快照。当然,您可能希望更精确地说明您复制的是哪个版本,以防其他人在您未查看时提交了对项目的更改。因此,如果您知道/calc/ -r的修订版901正是您想要的快照,您可以通过将svn 901传递给svn copy命令来指定它。

(强调我的)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11162473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档