我有一个每晚的 svn 提交脚本,它应该考虑到所有可能的场景并将新的东西提交到我们的 svn 存储库。基本上我正在运行以下步骤:
- svn status [path] 添加任何新文件
- svn status [path] 删除任何手动删除的文件
- 转储mysql开发数据库
- svn 使用默认消息提交所有上述更改。
这是我们正在使用的脚本:
#!/bin/bash
echo "Adding new files to the nightly commit"
svn status [path] | grep ? | sed 's/[?MD]//g' | xargs -I {} svn add {}
echo "Removing files manually deleted"
svn status [path] | grep ! | sed 's/[!]//g' | xargs -I {} svn del {}
echo "Dumping our development database"
mysqldump --add-drop-database --add-locks --create-options --disable-keys --extended-insert --result-file=/repopath/database.sql databasename
svn commit /repopath/ -m "Nightly Automatic commit of changes"
我只是想确保 ? 和 !被照顾,而且我没有任何其他我没有想到的场景。对此脚本的任何帮助或改进都将非常有帮助。随意使用此脚本来完成任何 SysAdmin 任务。
总结:我认为你已经涵盖了所有内容(第 6 点除外),但如果我是你,我不会这样做。
您还可以继续
svn add
处理目录中的所有文件。已添加且已受版本控制的文件将生成错误消息,但会添加所有新文件。