gpt4 book ai didi

svn - 从本地存储库中删除 "Deleted"文件

转载 作者:行者123 更新时间:2023-12-01 03:07:17 25 4
gpt4 key购买 nike

如何删除已从 Repo 中删除但本地尚未删除的文件?

本质上,我正在 powershell 中编写一个构建脚本,它需要从存储库和结帐中获取最新的更改,但可能有一些文件已从存储库中删除尚未从我的本地结帐中删除。我的意思是,一种解决方案是删除所有内容并进行干净的结帐,但这相当昂贵并且需要很长时间。我也可以执行 svn status 并查找带有“D”的任何内容并在本地删除它们,但这相当乏味。我还想覆盖任何冲突并 --force check out 需要合并的文件。

我是否缺少一些简单的命令,如还原或结帐开关?


**编辑:实际上我需要处理两种不同的情况:

A 部分 在一个部分中,我需要单独保留工作副本中的任何修改,只检查不冲突或合并的更改。我需要它永远不会中止,这意味着我只想扔掉任何有问题的东西并保留工作/本地副本。

我正在考虑使用:svn update --accept mine-full --force(注意:这是在根目录而不是单个文件上)

Part B) 在另一部分,我想覆盖所有更改并删除在 repo 中删除的文件。

我正在考虑使用:svn update --accept theirs-full --force(注意:这是在根目录而不是单个文件上)

这行得通吗?还是 --force(或 --accept)不是我想要使用的?


我对使用更新的主要担心是,如果出现问题,它会中止整个过程,不是吗? --force 对 svn update 有什么作用?它也不会删除未版本控制的项目。

还原也不是我所需要的,是吗?它不会删除我的任何未版本控制的项目。

另外,如果已经有本地文件,checkout 不会和 update 做同样的事情吗?在什么都不存在的情况下只使用 checkout 会简单得多。问题是我不能用 svn checkout 指定 --accept 参数。我想我可以测试该文件夹是否存在,然后进行相应的 check out 或更新。

最佳答案

对于 A 部分,我使用了:

svn update --accept mine-full --force

对于 B 部分,我刚刚做了:

第一步:

svn revert $localPath

第 2 步:

svn update $localPath

第 3 步(使用 powershell + svn status,但可以在 *nix 中使用 rm -rf grep/sed 完成):

svn status $localPath --no-ignore |
Select-String '^[?I]' |
ForEach-Object {
[Regex]::Match($_.Line, '^[^\s]*\s+(.*)$').Groups[1].Value
} |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue

关于svn - 从本地存储库中删除 "Deleted"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com