А почему бы не ....
Недавно в очередной раз обдумывал проблемы автоматизации выкладывания релизов продукта. А точнее автоматического обновления системы с возможностью откатить обновления. Причем как обычно проблема возникает не в последнем обновлении, а где-то до этого и система отката, построенная на принципе бекапа всех файлов перед заменой уже мало чем поможет. Даже если бекапить только обновляемые файлы, встречаются проблемы с частичной заменой куска файла. К примеру, какого-то общего конфига и пр.
Так вот возникла идея, а почему бы рабочему релизу не лежать в папке, спокойно находясь под системой контроля версий. Веть задача то одна и та же.
Т.е. имеем такое решение:
Есть ветка релиза в SC (source control), куда, по мере появления обновлений, разработчики коммитят собранные релизы, точнее только изменившуюся их часть.
Затем на продакшн и тестовых серверах делаем апедйт из этой релизной ветки, причем по желанию можем сделать апдейт до нужной нам версии обновления или даже совсем выборочно отдельные пакеты обновления.
Операция отката тоже очень тривиальна.
Очень удобно поддерживать много серверов с релизами и также сравнивать рабочие копии на серверах с текущим состоянием в SC.
Вот такие соображения. Они особенно актуальны для сиситем с небинарными файлами XML, XAML, HTML и пр ..
К сожалению на практике применить и опробовать еще не успел, но обязательно попробую.
Возможно, кто-то уже использует это, тогда поделитесь опытом и "подводными камнями".