Назад | Перейти на главную страницу

Создан ли сценарий ночной фиксации svn для записи всех возможных сценариев?

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

  1. svn status [путь] для добавления любых новых файлов
  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"

Я просто хочу убедиться, что? и ! заботятся, и что у меня нет других сценариев, о которых я бы не думал. Любая помощь или улучшение этого сценария будут очень полезны. Не стесняйтесь использовать этот скрипт по своему усмотрению для любых задач системного администратора.

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

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

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