Создан ли скрипт ночного коммита SVN для захвата всех возможных сценариев?

У меня есть ночной скрипт svn commit, который должен учитывать все возможные сценарии и фиксировать новые вещи в нашем svn-хранилище. В основном я выполняю следующие шаги:

  1. SVN статус [путь], чтобы добавить любые новые файлы
  2. svn status [путь] для удаления любых удаленных вручную файлов
  3. создание базы данных разработки MySQL
  4. 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.

2 ответа

  1. "xargs svn add" должно быть достаточно, почему вы используете -I {}?
  2. Я бы не стал этого делать вообще. Вы, вероятно, получите много временных файлов в SVN. Вы можете поместить CD-образ туда однажды.
  3. Я бы не стал этого делать. Ваш комментарий будет совершенно бессмысленным. Что я изменил и т.д? Почему бы просто не совершить, когда вы на самом деле что-то изменили?
  4. Mysql иногда злой Вы должны убедиться, что дамп базы данных на самом деле в порядке. Вы читаете вывод stderr из скрипта утром?
  5. Со временем ваш репо станет действительно большим (в зависимости от размера БД и изменений), без хорошего способа уменьшить его.
  6. Вам захочется сбежать от обоих! а также?. Или цитировать их. С одинарными кавычками '!' буду работать, "!" может вызвать проблемы.

В итоге: я думаю, что вы все охвачены (кроме пункта 6), но я бы не стал этого делать на вашем месте.

Вы также можете пойти svn add на все файлы в вашем каталоге. Файлы, которые уже были добавлены и уже находятся под контролем версий, сгенерируют сообщение об ошибке, но добавят все новые.

Другие вопросы по тегам