gpt4 book ai didi

svn - 如何从 SVN 中删除现有的变更列表

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

我通过执行以下操作创建了更改列表...

$ svn changelist my_changes

...向其中添加文件,然后提交更改列表...

$ svn ci --changelist my_changes --keep-changelists

...所以现在,我已经“保留”了我的更改列表,并且每次我查看状态时它都会显示。

$ svn status
... modified/added/deleted files listed here...

--- Changelist 'my_changes':
... files that are a part of this changelist listed here...

我“保留”变更列表是有原因的,但我不再需要它了,所以我准备删除它。如何从 SVN 中删除此更改列表?我知道如何从更改列表中删除文件,但不知道更改列表本身。

最佳答案

从更改列表中删除所有关联的文件,它就会消失。

官方方式

参见https://stackoverflow.com/a/15992735/253468

svn changelist --remove --recursive --cl my_changes .

手动方式

svn changelist --remove file.name

D:\Programming>mkdir test
D:\Programming>cd test
D:\Programming\test>svnadmin create .
D:\Programming\test>svn co file:///D:\Programming\test co
Checked out revision 0.
D:\Programming\test>cd co
D:\Programming\test\co>echo "hello" > test.file
D:\Programming\test\co>svn add test.file
A test.file

D:\Programming\test\co>svn status
A test.file

D:\Programming\test\co>svn changelist mycl test.file
A [mycl] test.file

D:\Programming\test\co>svn status
--- Changelist 'mycl':
A test.file

D:\Programming\test\co>svn changelist --remove test.file
D [mycl] test.file

D:\Programming\test\co>svn status
A test.file

Bash 中的自动化

# Remove all files from a specific CL
# Usage: svn_remove_cl my_changes
function svn_remove_cl() {
svn status |\
sed -n "/--- Changelist '$1':/,/--- Changelist.*/p" |\
grep -v '^--- Changelist' |\
awk '{print $2}' |\
xargs svn changelist --remove
}

说明:

  • svn status:输出所有修改的文件
  • sed:查找更改列表并获取 CL 标题后的输出,直到下一个 CL 或 svn status 输出的末尾
  • grep:从缓冲区中删除 CL 标题
  • awk:删除文件状态,仅保留文件名(即第二列)
  • xargs:将每一行作为 svn Changelist
    的参数(如果文件名中有空格或特殊字符,可能需要调整)

运行示例

~/tmp/wc$ svn status
A d

--- Changelist 'cl_a':
A a
A e
A f

--- Changelist 'cl_x':
A b
A c
~/tmp/wc$ svn_remove_cl cl_x
Path 'b' is no longer a member of a changelist.
Path 'c' is no longer a member of a changelist.
~/tmp/wc$ svn status
A b
A c
A d

--- Changelist 'cl_a':
A a
A e
A f

关于svn - 如何从 SVN 中删除现有的变更列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905000/

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