我在Ubuntu 12.04上安装了一个svn repo,需要从mac和windows客户端使用svn。我跟着this guide使用自定义svn://协议运行svn,我可以成功查看我的repo。在签出???
时,服务器不要求任何认证在mac客户端 - 命令行 - 我提交,它应该说
$ svn commit -m "edit 3 svn test"
Sending a
Transmitting file data .
Committed revision 3.
但这是实际发生的事情:
$ svn commit -m "added howto section."
无。 svn日志不表示任何更新。
如果我询问svn状态,我会得到一份完整的列表,列出我复制到本地工作副本并需要更新的所有目录,但这些目录中没有任何文件:
$ svn status
? app/Plugin/Metrics/Test
? app/Plugin/Metrics/Model
? app/Plugin/Metrics/Console
? app/Plugin/Metrics/Controller
? app/Plugin/Metrics/Config
? app/Plugin/Metrics/Lib
? app/Plugin/Metrics/View
'?'表示所有这些列出的目录都不在版本控制中。但是,未列出任何已更改的文件。只是为了说清楚 - 上面列出的大多数这些目录都包含我要添加或提交到repo中的新文件。未列出这些文件,仅列出目录。
如果我尝试'svn'添加'其中一个目录,具体来说,我得
$ svn add app/Plugin/Metrics/Model
svn: warning: 'app/Plugin/Metrics/Model' is already under version control
如果我手动尝试'svn'添加'我复制到本地工作副本中的其中一个目录中的文件,我得到
svn add app/Plugin/Metrics/Controller/MetricsMetricsController.php
svn: warning: 'app/Plugin/Metrics/Controller/MetricsMetricsController.php' is already under version control
如果我手动尝试提交同一个文件,我会
svn ci app/Plugin/Metrics/Controller/MetricsMetricsController.php
无。没有客户端svn的反馈。我正在前台的ubuntu框上运行svnserve,看看它是否给了我任何调试信息,但它也没有显示任何内容。
svnserve -d --foreground -r /galaxypool/svn
Reeeealy令人沮丧的问题。任何想法如何让SVN提交?
答案 0 :(得分:1)
我最终做了以下事情: - 将我的新目录树从本地工作副本移动到桌面。 - 发布:
svn delete app/Plugin/Metrics
D app/Plugin/Metrics
然后提交 - 这从repo中删除了损坏的Metrics文件夹:
svn commit -m "delete metrics"
Deleting app/Plugin/Metrics
Committed revision 16.
然后我转到我的目录树并删除了所有隐藏的'.svn'文件夹,并将树复制回本地工作集。 svn状态说
svn status
? wezwa
? app/Plugin/Metrics
然后我使用svn add:
再次添加树svn add app/Plugin/Metrics/
A app/Plugin/Metrics
A app/Plugin/Metrics/Config
A app/Plugin/Metrics/Config/bootstrap.php
A app/Plugin/Metrics/Config/cache.php ...etc
并提交:
svn commit -m "upload metrics"
Adding app/Plugin/Metrics
Adding app/Plugin/Metrics/Config
Adding app/Plugin/Metrics/Config/Schema
...etc
从Windows系统测试,它工作。这些文件在仓库中是安全的。
答案 1 :(得分:0)
首先需要为Version控件添加新文件。例如:
svn add app/Plugin/Metrics/Test
之后,提交结果将这些文件置于版本控制之下。
但是,在使用其他客户端之前,您需要在那里更新工作副本。
svn update
这将为您提供存储库的实际状态。如果文件已在本地存在,则会发生冲突。你必须以某种方式解决这些冲突。
修改强>: 由于手动移动.svn目录,似乎您的工作副本已损坏。尝试再做一遍;从存储库的全新工作副本开始。对要包含在新工作副本中的目录进行导出(而非签出)并将其复制。
请记住,这不是最好的事情;您可以使用外部与另一个存储库相关联,或者如果您需要更改某些内容,请使用“供应商分支”(如此处所述:http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html)