Как Вы решаете, что последнее число пересмотра SVN базировалось в каталоге?

Использовать фон вместо windowBackground

<style name="ColdstartSplashTheme" parent="SuperbalistTheme.Dark">
    <item name="android:background">@drawable/splash_background</item>
</style>
33
задан Frank Krueger 11 September 2008 в 10:58
поделиться

7 ответов

Один путь. Когда Вы проверяете код, смотрите на последнюю строку вывода svn:

$ svn up
...stuff...
Updated to revision 66593.

А более прямой путь:

$ svn info
Path: .
URL: https://svn.example.com/svn/myproject/trunk
Repository Root: https://svn.example.com/svn/
Repository UUID: d2a7a951-c712-0410-832a-9abccabd3052
Revision: 66593
Node Kind: directory
Schedule: normal
Last Changed Author: bnguyen
Last Changed Rev: 66591
Last Changed Date: 2008-09-11 18:25:27 +1000 (Thu, 11 Sep 2008)
23
ответ дан 27 November 2019 в 18:11
поделиться

svnversion , кажется, самый чистый способ сделать это:

svnversion -c /path/to/your-projects-local-working-copy/. | sed -e 's/[MS]//g' -e 's/^[[:digit:]]*://'

вышеупомянутая команда вычистит любые буквы M и S (указание на локальные модификации или коммутируемый) от вывода, а также меньшего количества пересмотра в случае, если svnversion возвраты диапазон вместо всего одного числа пересмотра (см. документы для большего количества информации). Если Вы не хотите фильтровать вывод, выньте канал и sed часть той команды.

, Если Вы хотите использовать svn info, необходимо использовать "рекурсивное" (-R) аргумент для получения информации от всех подкаталогов также. Так как вывод затем становится длинным списком, необходимо будет сделать некоторую фильтрацию для получения последнего измененного числа пересмотра от всех тех, которые являются самыми высокими:

svn info -R /path/to/your-projects-local-working-copy/. | awk '/^Last Changed Rev:/ {print $NF}' | sort -n | tail -n 1

то, Что делает та команда, - то, что она проводит все строки, которые включают строку "Last Changed Rev", затем удаляет все из каждой из тех строк кроме последнего поля (т.е. число пересмотра), затем сортирует эти строки численно и удаляет все кроме последней строки, приводящей только к самому большому количеству пересмотра. Если Вы запускаете Windows, я уверен, что можно сделать это довольно легко в PowerShell также, например.

Только, чтобы быть ясным: вышеупомянутые подходы получают Вас рекурсивное последнее измененное количество пересмотра просто пути в repo, который Ваша локальная рабочая копия представляет, для той локальной рабочей копии, , не поражая сервер. Таким образом, если кто-то обновил что-то в этом пути на сервер репозитория после Вашего последнего svn update, он не будет отражен в этом выводе.

, Если то, что Вы хотите, является последним измененным пересмотром этого пути на сервере , можно сделать:

svn info /path/to/your-projects-local-working-copy/.@HEAD | awk '/^Last Changed Rev:/ {print $NF}'
22
ответ дан 27 November 2019 в 18:11
поделиться

Ответы, предоставленные @Charles Miller и @Troels Arvin, корректны - можно использовать вывод svn update или svn info, но как Вы подсказываете, последний только работает, если репозиторий актуален. С другой стороны я не уверен, что оценивает любой , число пересмотра будет Вам, если часть Вашего исходного дерева находится на другом пересмотре, чем другая часть. Это действительно звучит мне как Вы, должен работать над гомогенным деревом. Я предложил бы или обновляющий перед рабочей информацией (или если Вы уже обновили для своей сборки, Вы являетесь золотыми), или использование svn info URL-to-source.

2
ответ дан 27 November 2019 в 18:11
поделиться

Я не знаю, используете ли Вы MSBuild (Visual Studio) для создания двоичных файлов. Но если Вы были бы: существует соединение, возможное между Subverion и MSBuild до , Проект

Задач Сообщества MSBuild Здесь является частью нашего сценария сборки: наше приложение (C#) получает svn включенное число пересмотра:

  <SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="installationpath\of\subversion\bin">
     <Output TaskParameter="Revision" PropertyName="Revision" />
  </SvnVersion>
  <Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/>
...
    AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)"
     AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"

Jan

3
ответ дан 27 November 2019 в 18:11
поделиться

Дубликат этот вопрос . Когда я отправил там, эти svnversion, команда является Вашим другом. Никакая потребность проанализировать вывод, никакая потребность обновить сначала, просто не делает задание.

7
ответ дан 27 November 2019 в 18:11
поделиться

Существует программа, распределенная с Подверсией, названной svnversion, который делает точно, что Вы хотите сделать. Это - как мы отмечаем наши веб-сайты.

2
ответ дан 27 November 2019 в 18:11
поделиться

"информация о svn" покажет Вам число пересмотра рабочей копии (см. строку "Пересмотра" в выводе от "svn информация"). Ваша система сборки, вероятно, позволяет, Вы для размещения соответствующей части "svn информация" производите где-нибудь, где она будет отражена в приложении. Например, можно указать, что при создании, временный (неимеющий версию) файл должен быть создан, содержа вывод от "svn информация"; и Вы затем включаете этот файл при компиляции.

1
ответ дан 27 November 2019 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: