这可能有点尴尬,但我会尽力解释我正在努力实现的目标以及遇到的问题。 首先:这是关于什么的?
目前我正试图build立一个分布式的工作环境来开发一个网页。 我的计划是设置一个版本控制的SVN存储库,一个实际的活动服务器,其中包含实际的活动页面,以及一个可以在页面上工作的开发服务器。 为了缓解这个问题,我打算在我的磁盘上没有项目的本地副本,但实际上直接在开发服务器托pipe的文件上工作。 为此,我在devserver.com/workspace下设置了一个WebDAV目录,该目录实际上映射到在devserver.com/下提供的文件。 所以我可以连接到devserver.com/workspace,在devserver.com/上更改并查看结果。 到目前为止,这工作完美。 下一步是创build一个SVN仓库来照顾我的版本控制。 我打算能够从我的开发服务器签入reposiroty,并且在任何时候用一个小的shell脚本,通过将修订副本签出到活动服务器目录中,将svn中的任何修订部署到活动服务器。 第二部分,检查到现场服务器,也工作得很好。 第一部分虽然是问题出现的地方:
我的工作站是Windows 7机器。 我使用Windows内置的WebDAV支持连接到WebDAV共享,工作得很好。 我可以从我的Windows机器上创build,移动,删除,编辑任何WebDAV共享上的文件。 下一步是将SVN的工作副本(实际托pipe在devserver.com/subversion/)签到WebDAV共享中。 在第一次尝试我使用Eclipse插件颠覆。 实际结帐工作正常,我可以更新和提交的东西到存储库,但是,我不能添加任何文件到忽略列表。 它总是给我一个错误。 所以我尝试了使用TortoiseSVN一个完整的新鲜的仓库同样的事情 – 并再次失败,同样的错误。 这是什么时候说试图添加文件到svnignore:
Some of selected resources were not added to ignore. svn: Cannot rename file '\\devserver.com@SSL\DavWWWRoot\workspace\.svn\tmp\dir-props.66fd8936-2701-0010-bb76-472f0b56a5d1.tmp' to '\\devserver.com@SSL\DavWWWRoot\workspace\.svn\tmp\dir-props'
这是什么apache2告诉我,当我尝试添加一个文件svnignore:
[Sun Mar 07 03:54:19 2010] [error] [client xxx.xxx.xxx.xxx] Negotiation: discovered file(s) matching request: /var/www/devserver.com/.svn/tmp/dir-props (None could be negotiated). [Sun Mar 07 03:54:31 2010] [error] [client xxx.xxx.xxx.xxx] (20)Not a directory: The URL contains extraneous path components. The resource could not be identified. [400, #0]
实际上这两个消息都重复了好几次。 第一个先出现,重复5次左右,第二次出现后再重复20次以上。 如果我创build一个常规文件,删除,重命名或修改它,这些消息都不会出现在我的error.log中
现在写这个问题时,我可以使用TortoiseSVN添加fils到svnignore。 然而,之后,Eclipse不会让我再犯。 现在在向svnignore添加文件时popup的错误现在也出现在提交中。
在search网页时,我发现有些人出现这个相同的消息,因为他们只有大写/小写的命名文件。 我检查了我的存储库,没有find这样的文件。 我也读过关于WebDAV和文件locking问题的人,因为WebDAV的文件lockingfunction似乎非常有限。 在某个阶段,我有错误告诉我,我的存储库被locking,因此操作无法完成。 这个错误虽然没有出现,因为我设置了一个完全新鲜的存储库和工作副本。
我真的很感激任何人都可以帮助我解决这个问题! 如果还有其他问题可以随意问。 我知道这是一个有点不寻常的设置。
最好的问候,丹尼尔
据我所知,没有通用的webdav驱动映射,使文件系统足以作为一个颠覆的工作副本使用。
Subversion要求文件系统完全像本地文件系统一样运行,否则其pipe理区域pipe理将不起作用。