Ios 获取从http到bundle版本的头部修订

Ios 获取从http到bundle版本的头部修订,ios,xcode,shell,svn,Ios,Xcode,Shell,Svn,我需要从本地存储库获取head修订版。 因此,我使用: svn update 'path' --non-interactive --no-auth-cache --username here_username --password here_password 而且它有效!在控制台中: Updating 'path': At revision 29. 怎么打这29号 我还尝试: REV=`/usr/bin/svnversion -nc 'path' | /usr/bin/sed -e 's/^

我需要从本地存储库获取head修订版。 因此,我使用:

svn update 'path' --non-interactive --no-auth-cache --username here_username --password here_password
而且它有效!在控制台中:

Updating 'path':
At revision 29.
怎么打这29号

我还尝试:

REV=`/usr/bin/svnversion -nc 'path' | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
echo $REV
结果是
23

但它得到了最后的修订,但不是头部

在我看到的版本中

我还发现:

REVISION = $(svn info -r HEAD 'http://login:password@url' | sed -n "/Revision/p" | sed "s/[^0-9]//g")
echo $REVISION
但我不知道为什么授权失败了

那么,我如何使用
shell
script获取头部修订呢?

  • 如果
    svn up
    中的
    path
    是您的工作副本中的某个节点(确实是),那么您将不会得到存储库的头部,而是得到存储库中此目录的最后提交版本(头部可能是另一路径上提交的后续版本)

  • 您的
    svreversion
    调用很奇怪(我懒得分析sed)-如果您想要存储库的头,并且拥有干净的工作副本,最简单的方法就是
    svreversion。
    在WC内部(
    -n
    可以,如果您想将其放入变量),而不是
    -c
    和相对路径(全球修订)

只需比较我和你的转换结果,就可以得到这样的工作副本

svn ls -v
      5 lazybadg              фев 07  2014 ./
      2 lazybadg              ноя 28  2013 branches/
      2 lazybadg          146 ноя 28  2013 readme.textile
      1 www-data              ноя 27  2013 tags/
      5 lazybadg              фев 07  2014 trunk/
>svnversion -n
5
>cd branches
>svnversion -n
5
正如你所看到的(你会同意我的看法,是吗?),这个WC |回购的负责人必须是5。但是,你的转换可能会

svnversion -nc trunk
2:5

svnversion -nc branches
2
以及我的短
svreversion-n
在任何(干净的)工作副本树中

svn ls -v
      5 lazybadg              фев 07  2014 ./
      2 lazybadg              ноя 28  2013 branches/
      2 lazybadg          146 ноя 28  2013 readme.textile
      1 www-data              ноя 27  2013 tags/
      5 lazybadg              фев 07  2014 trunk/
>svnversion -n
5
>cd branches
>svnversion -n
5
  • 对于
    svn信息URL
    • -r HEAD
      可以省略(
      HEAD是默认版本
    • --username here\u username--password here\u password
      将比URL编码的授权更有效
    • 与SVN无关,而不是两个管道到(可怕的)sed,您可以通过简单的短awk
      SVN信息…|awk'/Revision/{print$2}'
      TBT!!!)从
      SVN信息
      输出中轻松提取修订值
注意

对于所有版本标记任务,我不希望重新发明轮子,而是使用常见的众所周知的解决方案,例如SubWCRev | SVNRev