Лучшая практика хранения информации о версии Subversion для приложений
Подрывная деятельность имеет$Rev$
ключевое слово, которое заменено в примере$Rev: 1843 $
когда файл с этим ключевым словом фиксируется. Subversion помещает на него ревизию, созданную этим коммитом.
Я хотел бы использовать эту информацию в своих приложениях, чтобы после компиляции приложение сохраняло свою последнюю версию и сообщало о ней вместе со своей версией на странице «О программе».
Как лучше всего это сделать, учитывая, что любой файл может быть последним зафиксированным?
Я рассматриваю возможность создания метода в классе Core, который получает эту строку и анализирует из нее число, тогда каждый класс будет вызывать этот метод в своем конструкторе, передавая строку, обрабатываемую Subversion. Затем в методе я храню большее число.
Но это кажется странным, поэтому я хотел бы знать, есть ли лучший способ реализовать это.
Кроме того, есть ли ключевое слово для даты и времени фиксации?
1 ответ
Как лучше всего это сделать, учитывая, что любой файл может быть последним зафиксированным?
Просто не используйте ключевые слова, специфичные для файла, и имейте разные источники информации для всего репозитория.
- В случае «чистого» SVN можно, например, положиться на
svn info
вывод для (предпочтительно чистого) WC или даже URL-адреса удаленного репозитория, возможно, на выводе XML - Если у вас есть TortoiseSVN, у вас есть SubWCRev с ним, который может выполнить за вас всю грязную работу по извлечению всех необходимых данных из WC (вы даже можете запустить его из перехватчика после фиксации и всегда автоматически исправлять файл данных)
Кроме того, есть ли ключевое слово для даты и времени фиксации?
Много.
Из коробки у вас есть Date|LastChangedDate, часть ключевого слова Id также является датой в другом, чем в Date, формате.
Начиная с SVN 1.8, вы можете определять собственные ключевые слова и иметь собственную строку даты для своих нужд.