使用bash和subversion使用时间戳修订

时间:2014-08-21 11:16:02

标签: string bash svn revision

我试图为subversion中的修订选项提供日期方法,它本身应该通过一个简单的bash脚本提供。

 $ BLUBB="{'2014-06-15 22:00:23'}" 
 $ echo $BLUBB
 {'2014-06-15 22:00:23'}
 $ svn export myrepo/file.txt /tmp/ -r$BLUBB
 svn: E205000: Syntax error in revision argument '{'2014-06-15'

另一次尝试:

 $ svn export myrepo/file.txt /tmp/ -r"$BLUBB"
 svn: E205000: Syntax error in revision argument '{'2014-06-15 22:00:23'}'

我搞乱了。如何正确的方法?

根据http://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html,语法应如下所示:

 $ svn update -r {"2006-02-17 15:30 +0230"}

谢谢, 佛瑞德

2 个答案:

答案 0 :(得分:2)

我已经通过bash 脚本尝试了所有them

但是“!!!”标记的不起作用!

  • ok:$ svn update -r {2006-02-17}
  • ok:$ svn update -r {15:30}
  • ok:$ svn update -r {15:30:00.200000}
  • !!! $ svn update -r {"2006-02-17 15:30"}
  • !!! $ svn update -r {"2006-02-17 15:30 +0230"}
  • ok:$ svn update -r {2006-02-17T15:30}
  • ok:$ svn update -r {2006-02-17T15:30Z}
  • ok:$ svn update -r {2006-02-17T15:30-04:00}
  • ok:$ svn update -r {20060217T1530}
  • ok:$ svn update -r {20060217T1530Z}
  • ok:$ svn update -r {20060217T1530-0500}

我为 { WS 尝试了所有可转换的转义序列组合。

我尝试'而不是。并且 {{而不是 {,甚至更多,但是没有用。

所以我通过添加

更改了脚本

... | sed -r 's/\s+/T/' | sed -r 's/\s+//'

转换

{"2006-02-17 15:30 +0230"}

进入

{"2006-02-17T15:30+0230"}

答案 1 :(得分:0)

使用双引号并阅读SVNBook | Revision Specifiers

  

修订日期

     

版本号显示版本之外的世界   控制系统,但有时你需要真正关联一个时刻   在版本历史中有片刻的时间。为了方便这一点,   --revision(-r)选项也可以接受用大括号({和})包装的输入日期说明符。 Subversion接受标准   ISO-8601日期和时间格式,以及其他几种格式。这里有一些   实例

  • $ svn update -r {2006-02-17}

  • $ svn update -r {15:30}

  • $ svn update -r {15:30:00.200000}

  • $ svn update -r {"2006-02-17 15:30"}

  • $ svn update -r {"2006-02-17 15:30 +0230"}

  • $ svn update -r {2006-02-17T15:30}

  • $ svn update -r {2006-02-17T15:30Z}

  • $ svn update -r {2006-02-17T15:30-04:00}

  • $ svn update -r {20060217T1530}

  • $ svn update -r {20060217T1530Z}

  • $ svn update -r {20060217T1530-0500}

RTFM SVNBook