Svn 保存我的工作以备以后使用,并恢复到头部修订
我知道这可能是关于SVN的一个非常基本的问题,但很难用几个词来搜索它 假设我正在处理一张票证,在那里我不得不对文件Svn 保存我的工作以备以后使用,并恢复到头部修订,svn,Svn,我知道这可能是关于SVN的一个非常基本的问题,但很难用几个词来搜索它 假设我正在处理一张票证,在那里我不得不对文件index.html和app.js进行更改,但由于某种原因,这张票证现在受阻,我正在等待一些东西,以便我可以继续处理它 为了不闲着,现在我将开始处理ticket#2047,比如说,它将包括对文件blue-theme.css和index.html的更改 假设我正在使用Subversion,这是我可以使用的最合适的操作,以避免丢失我在ticket#2015上的工作,也不会将这些更改提交到
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的常见工作流模式)。然后,您的问题情况可按如下方式处理:
svn cp path/to/repo/trunk path/to/repo/branchs/ticket-2015
svn公司路径/to/repo/branchs/ticket-2015
svn cp path/to/repo/trunk path/to/repo/branchs/ticket-2047;svn公司路径/收件人/回购/分支机构/票据-2047
- 您可以从
:trunk
cd-ticket-2047进行最终合并;svn合并^/主干;svn提交
- 你检查一下是否一切正常
- 您可以通过签出
的工作副本、合并分支并提交它来重新整合:trunk
svn co path/to/repo/trunk;光盘中继线;svn合并^/分支机构/票证-2047;svn提交
svn rm path/to/repo/branchs/ticket-2047
- 在一个问题上与多人合作很容易
- 进行自动测试很容易(如果您已经为其设置了系统)
- 您对这两张票所做的任何更改都不会丢失,并且
- 这两张票不会有任何混淆
git svn
并使用git stash
保存您的临时资料。这也大大简化了临时的个人分支的使用。这是一个极好的答案,不仅为我的问题提供了一个极好的答案,而且还解释了一种可以用来避免这个问题和组织存储库的技术!我要是以前读过这样的书就好了。