1

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

现在我有越来越多的受版本控制的文件夹,我想要一个批处理文件来提交和更新所有文件夹。

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

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

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

你能帮我处理批处理文件吗?这将使我的工作变得更容易,但我对 SVN/批处理文件真的太缺乏经验,无法自己做这件事......

我使用带有命令行扩展名的 Win7x64 和 Tortoise SVN 1.7.12。

谢谢!

4

2 回答 2

7

我想我用 gammay 和这个输入想出了一些东西:

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

并反复为不同的路径!

谢谢 :)

于 2013-07-11T20:29:16.167 回答
0

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

其次,要删除文件,您需要从 svn 中检出现有文件,然后使用 svn delete 和 svn commit。

您的问题不清楚 - 如果这不能回答您的问题,请提供更多详细信息。


编辑回答提问者的要求(在下面的评论中): 好的。你想要的是一个脚本,它会在文件夹中找到新文件并将它们自动添加到 SVN,并在文件夹中找到已删除的文件并将它们也从 SVN 中删除。我可以告诉你这是危险的,因为可以添加/删除不需要的文件。

不过,如果您想继续使用此脚本,则该脚本可以执行以下操作:

  • 运行 svn status 显示丢失(已删除)文件和未知(待添加)文件
!    FileA [Missing - deleted]
?    FileD [Unknown - to be added]
  • 解析输出以找到!文件并在这些文件上运行 svn delete
svn delete FileA
  • 解析输出以找到 ? 文件并在这些文件上运行 svn add
svn add FileD
  • svn commit
    • 这将提交上述删除和添加的文件以及任何修改。
    • 如果您不想提交修改,请提交单个添加/删除的文件
于 2013-05-22T11:17:16.277 回答