2

我在 Ubuntu 12.04 上安装了一个 svn repo,需要从 mac 和 windows 客户端使用 svn。我按照本指南使用自定义 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 add”这些目录之一,具体来说,我得到

$ svn add app/Plugin/Metrics/Model
svn: warning: 'app/Plugin/Metrics/Model' is already under version control

如果我手动尝试“svn add”一个我复制到本地工作副本中的这些目录之一的文件,我会得到

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

令人沮丧的问题。任何想法如何让 SVN 提交?

4

2 回答 2

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系统测试,它工作。这些文件在 repo 中是安全的。

于 2013-02-18T16:18:50.627 回答
0

您首先需要为版本控制添加新文件。例如:

svn add app/Plugin/Metrics/Test

之后,提交会导致这些文件置于版本控制之下。

但是,在处理另一个客户端之前,您需要在那里更新工作副本。

svn update

这将为您提供存储库的实际状态。如果文件已在本地存在,您将遇到冲突。你将不得不以某种方式解决这些冲突。

编辑:由于手动移动 .svn 目录,您似乎有一个损坏的工作副本。尝试再做一遍;从存储库的全新工作副本开始。将要包含在新工作副本中的目录导出(而不是签出)并将它们复制过来。

请记住,这不是最好的做法;您可以使用外部与另一个存储库相关联,或者如果您需要更改某些内容,请使用“供应商分支”(如此处所述:http: //svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr。 html )

于 2013-02-18T12:08:18.330 回答