首页 文章

如何为svn提交和更新编写批处理文件

提问于
浏览
1

到目前为止,我已经使用Tortoise SVN在版本控制下提交和更新文件夹 . 当我提交时,我在GUI对话框中选中“all”,以便提交删除和添加 .

现在我在版本控制下有越来越多的文件夹,我希望有一个批处理文件来提交和更新所有文件夹 .

到目前为止,我已经尝试了命令行,发现了这个:

svn add . --force
svn commit -m"Adding missing files"

这会添加新文件,但不会反映任何删除 .

你能帮我解决批处理文件吗?它会让我的工作变得更容易,但我真的太缺乏SVN /批处理文件来自己做这个...

我使用Win7x64和Tortoise SVN 1.7.12和命令行扩展 .

谢谢!

2 回答

  • 6

    我想我用gammay和this输入了解了一些东西:

    cd "C:\Users\User\Desktop"
    for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /r "^\?"`) do svn add "%%i %%j"
    for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /r "^\!"`) do svn delete "%%i %%j"
    svn commit -m "Commit via Batch"
    

    cd "C:\Users\User\Desktop"
    svn update
    

    并反复为不同的路径!

    谢谢 :)

  • 0

    首先,您使用哪些svn命令行工具?您可以将CollabNet用于'svn'命令 .

    其次,要删除文件,您需要从svn签出现有文件,然后使用svn delete然后使用svn commit .

    您的问题不明确 - 如果这不能回答您的问题,请提供更多详细信息 .


    Edited to answer asker's requirement (in comments below): 好的 . 你想要的是一个脚本,它将在文件夹中找到新文件,并自动将它们添加到SVN,并在文件夹中查找已删除的文件,并将其从SVN中删除 . 我可以告诉你这是一个危险的,因为可以添加/删除不需要的文件 .

    尽管如此,如果您想继续使用此脚本,脚本可以执行以下操作:

    • 运行svn status,显示缺失(已删除)文件和未知(待添加)文件

    ! FileA [缺失 - 已删除]
    ? FileD [未知 - 待添加]

    • 解析输出找到了!文件并对这些文件运行svn delete

    svn删除FileA

    • 解析输出找到?文件和运行svn添加这些文件

    svn添加FileD

    • svn commit

    • 这将提交上述已删除和添加的文件以及任何修改 .

    • 如果您不想提交修改,请提交单个添加/删除的文件

相关问题