Лучшая практика хранения информации о версии Subversion для приложений

Подрывная деятельность имеет$Rev$ключевое слово, которое заменено в примере$Rev: 1843 $когда файл с этим ключевым словом фиксируется. Subversion помещает на него ревизию, созданную этим коммитом.

Я хотел бы использовать эту информацию в своих приложениях, чтобы после компиляции приложение сохраняло свою последнюю версию и сообщало о ней вместе со своей версией на странице «О программе».

Как лучше всего это сделать, учитывая, что любой файл может быть последним зафиксированным?

Я рассматриваю возможность создания метода в классе Core, который получает эту строку и анализирует из нее число, тогда каждый класс будет вызывать этот метод в своем конструкторе, передавая строку, обрабатываемую Subversion. Затем в методе я храню большее число.

Но это кажется странным, поэтому я хотел бы знать, есть ли лучший способ реализовать это.

Кроме того, есть ли ключевое слово для даты и времени фиксации?

1 ответ

Как лучше всего это сделать, учитывая, что любой файл может быть последним зафиксированным?

Просто не используйте ключевые слова, специфичные для файла, и имейте разные источники информации для всего репозитория.

  • В случае «чистого» SVN можно, например, положиться наsvn infoвывод для (предпочтительно чистого) WC или даже URL-адреса удаленного репозитория, возможно, на выводе XML
  • Если у вас есть TortoiseSVN, у вас есть SubWCRev с ним, который может выполнить за вас всю грязную работу по извлечению всех необходимых данных из WC (вы даже можете запустить его из перехватчика после фиксации и всегда автоматически исправлять файл данных)

Кроме того, есть ли ключевое слово для даты и времени фиксации?

Много.

Из коробки у вас есть Date|LastChangedDate, часть ключевого слова Id также является датой в другом, чем в Date, формате.

Начиная с SVN 1.8, вы можете определять собственные ключевые слова и иметь собственную строку даты для своих нужд.

Другие вопросы по тегам