Я пока не использовал SVN. Почему веб-сайт (например, Stack Overflow) отображает версию SVN внизу? Какая это версия? И каковы преимущества публичного показа?
Почему на сайте отображается версия SVN и каковы преимущества?
Ответы (5)
Чтобы, когда пользователь жалуется, ребята из службы поддержки могли спросить его, какая у него была версия. Может случиться так, что пользователь увидит проблему, после чего обновится программное обеспечение сайта и его жалоба больше не актуальна, поэтому разработчики будут тратить время на попытки воспроизведения.
Этот номер является номером версии SVN. Он начинается с нуля и автоматически увеличивается с каждым добавлением / обновлением исходного кода в течение срока службы репозитория SVN. Зная это число, легко получить полный исходный код именно в соответствующем состоянии - в репозитории есть способ для этого.
В традиционном программном обеспечении у вас есть номера версий, такие как 1.0, 1.1, 2.0 и т. Д., В основном для поддержки и маркетинговых целей.
На веб-сайтах обычно нет понятия номеров версий, поскольку они обычно меняются гораздо чаще, чем «традиционное» программное обеспечение. Кроме того, иногда есть просто «архитектурные» изменения, например, «небольшая оптимизация здесь, небольшая очистка там» - изменения, которые также происходят в «традиционном» программном обеспечении, но обычно не гарантируют выпуска новой версии (и увеличения версии от 1.0 до 1.0.1)
Поэтому вместо того, чтобы просто увеличивать какое-то произвольное число каждые два дня, StackOverflow решил использовать номер редакции из своего исходного элемента управления (который является Subversion, но каждая система управления исходным кодом имеет некоторый номер для идентификации отметок).
Он дает простой и однозначный номер версии без необходимости произвольно решать, какой версией будет любой заданный код.
Еще одна причина опубликовать номер вашей версии - помочь вам с тестированием. Если вы отслеживаете ошибку или тестируете релиз-кандидат, отображение номера ревизии поможет вам не запутаться, какую версию вы сейчас тестируете.
Если вы используете CruiseControl.Net, вы можете записать версию SVN в файл .state, используя следующее: http://code.google.com/p/svnrevisionlabeller/.
Затем запросите XML в файле состояния и отобразите его там, где хотите.
XDocument stateFileRoot = XDocument.Load("path-to-state-file");
var q = (from label in stateFileRoot.Descendants("Label")
select (string)label).SingleOrDefault();
if (q != null)
{
result = q.ToString().Substring(0, q.LastIndexOf(".")); // lop off last digit
HttpContext.Current.Application["BuildLabel"] = result;
}
(В этом случае я помещаю его в кеш для облегчения доступа и повышения производительности.)