Svn 保存我的工作以备以后使用,并恢复到头部修订

Svn 保存我的工作以备以后使用,并恢复到头部修订,svn,Svn,我知道这可能是关于SVN的一个非常基本的问题,但很难用几个词来搜索它 假设我正在处理一张票证,在那里我不得不对文件index.html和app.js进行更改,但由于某种原因,这张票证现在受阻,我正在等待一些东西,以便我可以继续处理它 为了不闲着,现在我将开始处理ticket#2047,比如说,它将包括对文件blue-theme.css和index.html的更改 假设我正在使用Subversion,这是我可以使用的最合适的操作,以避免丢失我在ticket#2015上的工作,也不会将这些更改提交到

我知道这可能是关于SVN的一个非常基本的问题,但很难用几个词来搜索它

假设我正在处理一张票证,在那里我不得不对文件
index.html
app.js
进行更改,但由于某种原因,这张票证现在受阻,我正在等待一些东西,以便我可以继续处理它

为了不闲着,现在我将开始处理ticket
#2047
,比如说,它将包括对文件
blue-theme.css
index.html
的更改


假设我正在使用Subversion,这是我可以使用的最合适的操作,以避免丢失我在ticket
#2015
上的工作,也不会将这些更改提交到文件
index.html
,就好像它们属于ticket
#2047

最简单的选项:创建一个新的工作副本。只需
svn checkout
将项目移至新位置,保留旧工作副本及其所有未提交的工作,并在新工作副本中执行新工作通知单

您可以通过使用普通文件系统命令(不是svn copy)将工作副本复制到新位置,然后在新位置上使用
svn revert
放弃新工作副本上正在进行的工作来完成相同的任务


高级选项:如果您不需要两个工作副本,可以使用(或者在OrtoiseSVN中,“查看统一的差异”)导出所有修改的文本差异。将其保存到文件中,然后还原所有更改。稍后,当您处理完第二个票证并希望从第一个票证恢复更改时,请使用该命令重新应用diff文件中的更改。

Subversion方法是为每个票证创建一个分支。一旦您确信您的票证已关闭,您将最后一次从
trunk
合并到票证分支,对其进行测试,然后将分支合并回
trunk

示例

假设您的回购协议中有以下设置:

^/trunk
^/branches
trunk
成为您的“稳定”存储库,同时在分支中修复bug(使用Subversion的常见工作流模式)。然后,您的问题情况可按如下方式处理:

  • 为票证2015创建分支机构:
    svn cp path/to/repo/trunk path/to/repo/branchs/ticket-2015
  • 退票分行:
    svn公司路径/to/repo/branchs/ticket-2015
  • 在您的工作副本《2015年票证》中处理2015年问题,并按您的意愿提交
  • 通过为票证2047创建一个新的分支开始工作:
    svn cp path/to/repo/trunk path/to/repo/branchs/ticket-2047;svn公司路径/收件人/回购/分支机构/票据-2047
  • 在某种程度上,您对2047年的工作感到满意,并决定重新融入:
    • 您可以从
      trunk
      cd-ticket-2047进行最终合并;svn合并^/主干;svn提交
    • 你检查一下是否一切正常
    • 您可以通过签出
      trunk
      的工作副本、合并分支并提交它来重新整合:
      svn co path/to/repo/trunk;光盘中继线;svn合并^/分支机构/票证-2047;svn提交
  • 一旦您的分行被重新整合,您可以将其从回购中删除(别担心,历史记录当然会被保留,从svn中不会真正删除任何内容):
    svn rm path/to/repo/branchs/ticket-2047
  • 您将继续使用相同的方法购买2015年门票
  • 采用这种方法有一些优点:

    • 在一个问题上与多人合作很容易
    • 进行自动测试很容易(如果您已经为其设置了系统)
    • 您对这两张票所做的任何更改都不会丢失,并且
    • 这两张票不会有任何混淆

    我相信您指的是git所称的“搁置”,以及SVN所称的“搁置”。它在上,但不断被推后。首先使用一个分支,并在切换到另一个分支时将工作提交到该分支。或者秘密使用
    git svn
    并使用
    git stash
    保存您的临时资料。这也大大简化了临时的个人分支的使用。这是一个极好的答案,不仅为我的问题提供了一个极好的答案,而且还解释了一种可以用来避免这个问题和组织存储库的技术!我要是以前读过这样的书就好了。