【问题标题】:Getting Revisions ONLY in my directory and not in root Repository仅在我的目录中而不是在根存储库中获取修订
【发布时间】:2013-06-05 20:47:44
【问题描述】:

好的,这有点难以解释,所以请耐心等待。

例如,假设我正在处理这个存储库 路径/到/repos/用户

例如,在这个存储库中有很多不同的用户。

*../../../users/me

../../../users/你*

我们都像往常一样在 TortoiseSVN 中进行提交,对于这个例子,假设修订版 10 是主要修订版。在“../me”目录中,我只提交了 10、6 和 5 个。而“../you”目录提交了其他所有内容。

如果我在那个目录中使用 svn 命令 = svn update -r PREV 并且我要使用 svnversion 检查版本号,我会得到 9。但是,我不想要 9。这让我想到了我的问题,有没有办法使用命令行更新到以前的修订版并获得只有“../me”提交的修订版?

对不起,如果有点难以理解,如果我可以提供任何东西让它更清楚一点,请告诉我。谢谢。

【问题讨论】:

  • 很难理解您在此处尝试执行的操作。你是说你已经检查了整个存储库,但只想更新me 目录?还是您只想更新特定用户提交的项目?
  • @alroc 抱歉,这有点难以解释。是的,我已经检查了那个存储库,我只想从“我”目录中进行修订,但我只是想出了如何解决我的问题。请参阅下面的答案。
  • 在工作副本中,您可以独立更新任何单个目录。如果这是经常发生的情况,您可能不应该首先检查整个存储库 - 只检查您需要的内容。
  • 我理解你的意思,但它有点偏离我的意思,因为即使我有我的目录,例如使用 svnversion 将修订号存储在变量中,也会给我存储库编号(例如 HEAD = 500)。对于第一次调用 svnversion,我会得到 500,即使我的目录中的最新工作副本是 498。如果我之前的提交是 490。如果我执行 svn update -r PREV,下次我运行 svnversion 时,我不会像我想要的那样得到 490,我会得到 499,因为虽然它适用于目录,但它也适用于存储库。 @alroc
  • 不过,感谢您的 cmets。干杯。 :) @alroc

标签: php svn command-line tortoisesvn


【解决方案1】:

我今天早上发现了我的问题,为了回答我自己的问题,在使用签出存储库中的子文件夹时,每次调用 svn update -r PREV 命令时,它都会更新到 me 目录。但是,此时运行 svnversion 将为您提供 ../../repos/users 中的先前版本来解决此问题,我在 me 目录中调用了 svn info . 并注意到 Last Changed Rev: 有我需要的号码。为了得到这个,我调用了 svn info(这是在 php btw 中):

exec('svn info .', $info);

然后我用正则表达式来抓取密钥:

$versionKey = array_keys(preg_grep('/Last Changed Rev/', $info));

然后使用偏移量为 18 的 substr 将版本设置为该修订号:

$version = substr($info[$versionKey[0]], 18);

【讨论】:

    猜你喜欢
    • 2019-06-29
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多