83739

BUG:svn 集成的问题

回帖
回帖数 3
阅读数 1370
发表时间 2015-02-14 12:49:08
🐝
倪述荣楼主

集成svn之后,通过svn提交的内容,可以方便的看diff和view。但是今天我遇到一个问题,就是当我的svn服务器换了地方之后,这里就没法看了。因为diff和view的参数url在一开始就保存到数据库了,而且还是编码之后的,替换起来非常的麻烦。


比如我的svn仓库在A服务器的时候,部署在/home/svn。后来搬迁到B服务器的时候,改到了/data/svn。之前的就挂了。。。


public function createActionChanges($log, $repoRoot)
{
if(!$log->files) return array();
$diff = '';

$oldSelf = $this->server->PHP_SELF;
$this->server->set('PHP_SELF', $this->config->webRoot);

if(!$repoRoot) $repoRoot = $this->repoRoot;

foreach($log->files as $action => $actionFiles)
{
foreach($actionFiles as $file)
{
$param = array('url' => helper::safe64Encode($repoRoot . $file), 'revision' => $log->revision);
$catLink = trim(html::a(helper::createLink('svn', 'cat', $param, 'html'), 'view', '', "class='repolink'"));
$diffLink = trim(html::a(helper::createLink('svn', 'diff', $param, 'html'), 'diff', '', "class='repolink'"));
$diff .= $action . " " . $file . " $catLink ";
$diff .= $action == 'M' ? "$diffLink\n" : "\n" ;
}
}
$changes->field = 'subversion';
$changes->old = '';
$changes->new = '';
$changes->diff = trim($diff);

$this->server->set('PHP_SELF', $oldSelf);
return (array)$changes;
}

3个回复
🍟
春哥沙发
你可以在第二个服务器做个符号链接,保持原来的url地址路径还能访问就可以了。
2015-02-14 19:46:41 王春生 回帖
🐝
倪述荣板凳
这个方法我也考虑过,不够纯粹。我还想通过扩展svn的controller,做个替换,但是失败了:)
2015-02-15 10:12:39 倪述荣 回帖
解决问题最实效。你这个是相当于版本库的url地址都变了。程序层面也很难做更好的解决处理。
2015-02-16 09:34:08 王春生 回帖
联系我们
联系人
张淑钧/高级客户经理
电话(微信)
13156280939
QQ号码
2082428410
联系邮箱
zhangshujun@chandao.com
相关帖子
返回顶部
客服头像
张淑钧
高级客户经理
客服微信
13156280939
2082428410
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。