myObject.description().componentsSeparatedByString(" ").first!
Это не совсем то, что вы хотите - это добавит нежелательный ведущий '<' и завершающий ':'. Но когда я отлаживаю, я ценю скорость, а не аккуратность, поэтому этот быстрый и грязный трюк сработал для меня.
Чтобы, когда пользователь жалуется, сотрудники службы поддержки могли спросить его, какая у него была версия. Может случиться так, что пользователь увидит проблему, после чего программное обеспечение сайта обновлено, и его жалоба больше не актуальна, поэтому разработчики будут тратить время на попытки воспроизведения.
Этот номер является номером версии 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;
}
(В данном случае я помещаю его в кеш для облегчения доступа и повышения производительности.)