几个月前,我的团队将源代码控制从Visual SourceSafe切换到Apache Subversion,我们并不高兴.
最近我一直在关注Team Foundation Server,至少从表面上看,它看起来非常令人印象深刻.与Visual Studio有很好的集成,为DBA,测试人员,项目经理等提供了许多出色的工具.
这两种产品最明显的区别在于价格.Apache Subversion(免费)很难打败.Team Foundation Server非常昂贵,因此额外的功能真的必须将Subversion放入裤子中.
在svn中,我有一个创建的分支,比如修订版22334.然后在分支上发布了.
如何获取分支上已更改的所有文件的列表与中继上的文件相比较?我不希望在创建分支和"现在"之间看到在主干上更改的文件.
如何确定我的存储库的当前版本以查看是否需要升级它(svnadmin upgrade)?
实际上我正在举办第三方SVN,我想知道是否需要让他们升级我的回购.
我问,因为1.5服务器会将repo版本保持在1.4,除非我错过了什么?
我正在寻找一个关于使用svn:externals的简洁而精心编写的教程.
我自己已经知道如何以一种基本的方式使用它们,但是我想要一篇很好的文章,我可以在回答最近出现的问题时链接到这篇文章:
我自己也会这样做,但我不经常使用它们想要伸出脖子并在上面写一个教程.对于这个话题,Google出人意料地无益.
我最近移动了SVN服务器,现在我想将工作副本从我的计算机重新定位到新服务器.但我得到了最奇怪的错误.我做 :
svn switch http://99.99.99.new/svn/company/project/trunk/web
Run Code Online (Sandbox Code Playgroud)
但我明白了
svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'
Run Code Online (Sandbox Code Playgroud)
移动是使用转储和导入...而repo根位于http://99.99.99.new/svn/company/project
你们有什么想法可能有什么不对吗?非常感谢
是否可以在Subversion存储库中查看特定代码行的更改历史记录?
例如,我希望能够查看添加特定语句的时间或更改该语句的时间,即使其行号不再相同.
我正在使用Subversion 1.4.6,我现在无法升级到1.5版.
情况:
主干有很多结构变化(主要是移动文件).
我有一个最近从主干合并的分支,但在重大变化之前.
将主干合并到分支的最佳方法是什么?
我的想法:
首先,通过将分支中的已修改文件合并到主干,将分支小心地合并到主干.
将主干复制到分支.在不丢失分支历史的情况下,最好的方法是什么?我应该弃用分支并创建一个新分支吗?
好吧,看起来我没有给SVN足够的信用.毕竟它足够聪明.我只是被"D"和"A"的输出所拖延,但在后台它做了一个动作.
所以我想将此文件夹 http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/与此 进行比较http://svn.boost.org/svn/boost/sandbox/boost/extension/.我希望得到一个diff文件.这些文件夹是在svn控制下,但我更喜欢git样式的diff文件(如此处所示)我试过,git diff但它似乎不适用于web文件夹.那么如何在Linux上使用一个命令做同样的事情呢?
更新: 所以我们得到了一个很好的答案.但它的工作原理很奇怪 - 在我看来它显示所有文件(相同的文件)都用相同的内容替换了所有的内容(虽然我确信只有3-4条代码行被改变了)...
更新2: 为了实现我真正需要的东西(在Linux上使用git样式,只有真正改变的行的dif文件):
$ svn export http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ repos2 --native-eol CRLF
$ svn export http://svn.boost.org/svn/boost/sandbox/boost/extension/ repos --native-eol CRLF
$ git diff repos repos2 > fileWithReadableDiff.diff
Run Code Online (Sandbox Code Playgroud) 我正在使用MacOS X 10.7.5,由于握手失败,我需要更新的OpenSSL版本.互联网上有几个教程,我尝试了以下内容:
brew install openssl
brew link openssl --force
Run Code Online (Sandbox Code Playgroud)
然而,它不起作用:
openssl version
OpenSSL 0.9.8r 8 Feb 2011
brew unlink openssl && brew link openssl --force
Unlinking /usr/local/Cellar/openssl/1.0.1e... 1139 links removed
Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created
Run Code Online (Sandbox Code Playgroud)
SVN问题也未解决.有任何想法吗?我宁愿不尝试MacPorts方式,因为它可能会干扰Homebrew.
我搞砸了我的SVN存储库,现在需要将整个存储库从版本28恢复到24,并且不想处理差异或冲突.有一种快速简单的方法吗?我已经能够在使用merge命令之前恢复单个文件 - 但在这个实例中,它希望将所有文件从版本28添加回存储库,而我真正想做的就是删除它们.
我在linux框(bash)上使用命令行.
谢谢
编辑
感谢您的帮助!我通过以下方式修复:
svnadmin create /svnroot/<repo>.fixed
svnadmin dump -r 1:24 /svnroot/<repo> --incremental > dump.svn
svnadmin load /svnroot/<repo>.fixed < dump.svn
Run Code Online (Sandbox Code Playgroud)
然后将旧的repo放在备份位置并将repo.fixed移动到repo.
再次感谢!