标签: svn

svn:MKACTIVITY 403禁止

我在尝试提交到svn存储库时遇到此错误:

svn: MKACTIVITY of '/svn/Demo/!svn/act/e2e65cfa-...4165f': 403 Forbidden (http://svn....com:8088)
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?我google了很多,但找不到适合我的解决方案.

svn

48
推荐指数
6
解决办法
6万
查看次数

回到Subversion的修订版

假设您将代码更新为修订版10,该版本已损坏.你想回到修订版9,处理代码并等到有人修复构建:

svn merge -rHEAD:9 .
Run Code Online (Sandbox Code Playgroud)

但它不起作用,为什么?

svn version-control

48
推荐指数
2
解决办法
6万
查看次数

什么使DVCS中的合并变得容易?

我在Joel的软件上读到:

使用分布式版本控制,分布式部分实际上不是最有趣的部分.

有趣的是,这些系统考虑的是变化,而不是版本.

HgInit:

当我们必须合并时,Subversion会尝试查看两个版本 - 我的修改后的代码和修改过的代码 - 它会尝试猜测如何在一个大的邪恶混乱中将它们粉碎在一起.它通常会失败,产生并非真正冲突的"合并冲突"的页面和页面,只是Subversion无法弄清楚我们做了什么的地方.

相比之下,当我们在Mercurial中单独工作时,Mercurial正忙着保留一系列变更集.因此,当我们想要将我们的代码合并在一起时,Mercurial实际上有更多的信息:它知道我们每个人都改变了什么并且可以重新应用这些更改,而不仅仅是查看最终产品并试图猜测如何放置它一起.

通过查看SVN的存储库文件夹,我的印象是Subversion将每个修订版维护为变更集.据我所知,Hg正在使用变更集快照,而Git纯粹使用快照来存储数据.

如果我的假设是正确的,那么必须有其他方法使DVCS中的合并变得容易.那些是什么?

*更新:

  • 我对技术角度更感兴趣,但从非技术角度来看是可以接受的
  • 更正:
    1. Git的概念模型纯粹基于快照.快照可以存储为其他快照的差异,只是差异纯粹用于存储优化.- 拉法洛·道格尔德评论
  • 从非技术角度来看:
    1. 它只是文化:如果合并困难,DVCS根本不会工作,因此DVCS开发人员投入大量时间和精力使合并变得容易.CVCS用户OTOH习惯于糟糕的合并,因此开发人员没有动力让它工作.(为什么当你的用户为你的垃圾付出​​同样的代价时能做些好事?)
      ......
      回顾一下:DVCS的重点是拥有许多分散的存储库并不断地来回合并变化.如果没有良好的合并,DVCS根本就没用.然而,CVCS仍然可以通过糟糕的合并来生存,特别是如果供应商可以调整其用户以避免分支.- JörgWMittag回答
  • 从技术角度来看:
    1. 录制真实DAG的历史确实有帮助!我认为主要区别在于CVCS并不总是将合并记录为与几个父母的变更集,从而丢失了一些信息.- tonfa评论
    2. 因为合并跟踪,以及每个修订都知道其父母的更基本的事实....当每个修订(每次提交),包括合并提交,知道其父项(对于合并提交,意味着拥有/记住多个父项,即合并跟踪),您可以重建图(DAG =直接非循环图)的修订历史.如果您知道修订图,则可以找到要合并的提交的共同祖先.当您的DVCS知道如何找到共同的祖先时,您不需要将其作为参数提供,例如在CVS中.
      .
      请注意,两个(或更多)提交可能有多个共同的祖先.Git利用所谓的"递归"合并策略,它合并了合并基础(共同的祖先),直到你留下一个虚拟/有效的共同祖先(在一些简化中),并且可以做简单的3路合并.- JakubNarębski回答

检查在Git中合并和/或为什么在SVN中的合并更好?

svn git version-control mercurial dvcs

48
推荐指数
4
解决办法
3546
查看次数

如何从存储库中删除所有已删除的文件?

我有一个脚本,我在其中添加所有新文件,然后使用以下行将我的工作副本提交到我的存储库:

svn status | grep ^\? | awk '{print $2}' | xargs svn add
Run Code Online (Sandbox Code Playgroud)

我现在想添加一行从存储库中删除我工作副本中的所有已删除文件.换句话说,我不能逐个指定它们,我需要用svn状态检测它们然后自动删除它们.但是这条线不起作用.

svn status | grep ^\! | awk '{print $2}' | xargs svn --force delete
Run Code Online (Sandbox Code Playgroud)

如你所见,我已经取代了

" ?"与" !"和

" add"与" --force delete"

你能告诉我它为什么不起作用吗?

PS.我知道这是一个危险的程序.我已经讨论了所有这些.谢谢

谢谢

svn

48
推荐指数
3
解决办法
3万
查看次数

Mac OS Lion中的Subclipse显示"无法加载默认SVN客户端"错误

更新到Mac OSX Lion后,我发现我无法使用Subclipse.我一直收到这个错误:

无法加载默认的SVN客户端

有关如何解决此问题的任何想法?

我正在使用Eclipse Indigo.

eclipse subclipse svn osx-lion

48
推荐指数
2
解决办法
3万
查看次数

如何在Subversion下包含/排除某种类型的文件?

我对include/exclude行话感到困惑,而我的实际SVN客户端似乎没有(或者我一直无法轻易找到)一个简单的选项来添加或删除某种类型的文件以进行版本控制.

比方说,我已经添加了整个Visual Studio文件夹,包括其解决方案,项目,调试文件等,但我只想对实际的源文件进行版本控制.最简单的方法是什么?

svn version-control

47
推荐指数
2
解决办法
5万
查看次数

'Un-SVN'是一份工作副本

我有一个文件夹,是我的工作副本.如何从此文件夹中删除所有SVN功能?我有理由这样做,不知何故,我的主文件夹包含我所有工作的网站副本,不知何故已经变成了一个工作副本本身,所以我有一个工作副本本身.

那么,是否有一种从文件夹中删除版本控制的简单方法?

svn tortoisesvn

47
推荐指数
4
解决办法
3万
查看次数

SVN:您是否可以从本地签出中删除目录(而不是从存储库中删除)?

假设您在subversion控件下有一个目录,其中包含一些文件和大量子目录,如下所示:

file1.txt
file2.txt
file3.txt
dir1/
dir2/
dir3/
dir4/
:
dirXX/
Run Code Online (Sandbox Code Playgroud)

现在你需要文件和一些目录,但不是全部.这可以通过SVN完成.只是使结账非递归:

svn checkout -N <URL>
Run Code Online (Sandbox Code Playgroud)

这只检出第一个目录和里面的文件.没有包含子目录.即使你进入checkout目录并运行" svn up",它只会更新之前检出的文件,它不会添加目录.您现在可以通过显式更新这些目录来有选择地添加所需的目录.例如,如果您只需要dir2和dir4,则可以进入结帐目录并执行

svn up dir2
svn up dir4
Run Code Online (Sandbox Code Playgroud)

如果您svn up将来运行通用" ",它将只更新文件和那两个目录,它不会添加任何其他目录.

现在的问题是:如果我以后再决定我不再需要dir2怎么办?我怎么摆脱它?似乎没有办法这样做,除了删除整个结帐并从头开始.

当你刚删除dir2时,下一个" svn up"将把它带回来,因为" svn status"当然显示它现在缺失("!"在它的名字前面).运行" svn remove"当然会将其删除,但在下一次提交时,它也会将其从存储库中删除,这不会发生.

即使是SVN 1.5的新稀疏目录("浅签出")功能也没用:

Subversion 1.5的浅层检查实现很好,但不支持一些有趣的行为.首先,您无法取消望远镜查看工作副本项目.在无限深度工作副本中运行svn update --set-depth empty将不会丢弃除最顶层目录之外的所有内容 - 它只会出错.
- http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html

这对SVN来说完全不可能吗?有没有人想出一个聪明的工作?

只需创建checkout目录(没有SVN),然后直接从存储库中检出单个子目录作为该目录的子目录将适用于目录:现在每个目录都是自己的结帐,可以更新,一旦不再需要,你可以删除它.但是,我如何获取文件(例如file1.txt)?SVN不允许签出单个文件,只能签出整个目录.

svn

47
推荐指数
3
解决办法
2万
查看次数

如何备份远程SVN存储库

我目前正将SVN服务器从家用服务器移动到远程服务器,以便我可以更轻松地从其他位置访问它.我的远程服务器没有备份,所以我想定期备份到我的家庭服务器.

远程服务器是Windows 2003服务器.家庭服务器是Windows Home Server.

做这个的最好方式是什么?我可以让我的家庭服务器每晚都能获得远程服务器的转储吗?带宽不是一个重要的考虑因素,但如果我可以将任何新的签到复制到我的家庭服务器上的SVN服务器那么没问题.

欢迎任何建议.

svn backup

47
推荐指数
4
解决办法
3万
查看次数

将svn文件夹还原为以前的版本

要将SVN中的特定文件夹恢复到以前的状态,我目前使用以下内容:

svn rm folder
svn commit -m 'removed folder to revert to previous version'
svn co http://pathto/repo/folder@268
cd folder
rm -rf .svn //recursively if many folders
svn add folder
svn commit -am 'reverted to the previous version'
Run Code Online (Sandbox Code Playgroud)

对于什么应该是一个相当常见的用例来说似乎太麻烦了.我一定是做错了.你怎么能这样做?

svn version-control

47
推荐指数
1
解决办法
6万
查看次数