SVN:在保留本地更改的同时恢复提交

发布于 2024-12-13 12:05:22 字数 273 浏览 3 评论 0原文

所以我有一个本地构建文件。

它根本不应该在 SVN 中,但是,它确实在。 (谢谢,以前的维护者!)但是对本地副本进行了更改,这些更改仅适用于在其所在的盒子上进行构建。

我搞砸了,做了一次提交,提交了这个本地构建文件。现在 SVN 存储库副本已进行这些本地更改;这很糟糕。

我怎样才能回到之前的状态,其中本地更改位于本地副本中,而不是在 SVN 存储库中,后续的 svn 更新 不会覆盖本地更改吗?

So I have a local build file.

It shouldn't be in SVN at all, but, it is. (Thanks, previous maintainer!) But changes have been made to the local copy, which only apply to building on the box it's on.

I screw up and do a commit that commits this local build file. Now the SVN repo copy has these local changes; this is bad.

How can I get back to status quo ante, where the local changes are in the local copy, not in the SVN repo, and a subsequent svn update won't overwrite the local changes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

明天过后 2024-12-20 12:05:22
  1. 将文件与本地更改一起备份到某处。
  2. 对文件执行显示日志,并将此文件恢复到不需要的更改之前的修订版本(使用具有给定修订号的更新)
  3. 提交文件
  4. 更新整个工作副本
  5. 恢复步骤 1 中完成的备份

您可以使用更改列表或锁定以免再次犯同样的错误。

  1. backup the file with the local changes somewhere.
  2. do a show log on the file, and revert this file to the revision before the unwanted changes (using an update with the given revision number)
  3. commit the file
  4. update the whole working copy
  5. restore the backup done at step 1

You might use changelists or lock the file to avoid making the same mistake again.

做个少女永远怀春 2024-12-20 12:05:22
  1. 如果更改的文件已进行版本控制,则您不能将更改存储在 WC 中“仅本地”(除了将设置添加到忽略列表之外)
  2. 您可以通过反向合并来撤消任何先前的提交
  1. You can not store in WC "local only" changes, if changed files are versioned (except adding set to ignore-list)
  2. You can undo any previous commit(s) by reverse-merging
番薯 2024-12-20 12:05:22

对我来说,这个有效:

> svn st
M       0027
> svn info 0027 | grep URL
URL: svn://localhost/xxx/trunk/0027
> svn rm -m "remove accidently checked in file" svn://localhost/xxx/trunk/0027
Revision ...
> svn update
   C 0027
At revision 42.
Summary of conflicts:
  Tree conflicts: 1
> svn revert 0027
Reverted '0027'
> svn status
?       0027

所以文件 0027 仍然存在,具有旧内容,但不再位于存储库中。

For me this one works:

> svn st
M       0027
> svn info 0027 | grep URL
URL: svn://localhost/xxx/trunk/0027
> svn rm -m "remove accidently checked in file" svn://localhost/xxx/trunk/0027
Revision ...
> svn update
   C 0027
At revision 42.
Summary of conflicts:
  Tree conflicts: 1
> svn revert 0027
Reverted '0027'
> svn status
?       0027

So file 0027 is still alive, has it's old contents but is not in the repo anymore.

剑心龙吟 2024-12-20 12:05:22

如果您的文件不应该进行版本控制,您可以取消它的版本控制:

svn rm --keep-local filename

这将保留任何本地文件,但 SVN 将停止跟踪它。

If your file shouldn't be versioned, you can un-version it:

svn rm --keep-local filename

This will keep any local file, but SVN will stop tracking it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文