我正在尝试在 Cygwin 上创建一个 Subversion 存储库,但我无法添加任何内容。当我尝试提交时,我收到错误“svn: E160004: Invalid changes line in rev-file”。这是我的工作流程:
创建一个新的存储库
svnadmin create ~/repo
将存储库签出到工作目录
mkdir ~/working
svn co file:///home/username/repo ~/working
将内容添加到存储库
mkdir -p ~/working/myproject/trunk
cd ~/working
echo "Blah" > myproject/trunk/file.txt
svn add myproject
svn commit -m "Commit message"
最后一步失败并显示以下消息:
Adding myproject
Adding myproject/trunk
Adding myproject/trunk/file.txt
Transmitting file data .svn: E160004: Commit failed (details follow):
svn: E160004: Invalid changes line in rev-file
我还尝试了不同的工作流程。我尝试创建工作目录,添加内容,然后使用svn import
将内容添加到存储库。但我得到相同的结果。
奇怪的是,如果我使用 BDB 后端而不是 FSFS 创建存储库,它可以正常工作。我可以毫无问题地添加内容。我尝试将内容添加到 BDB 支持的存储库,创建一个 FSFS 支持的存储库,并使用 svnadmin dump/load 复制数据,但是当我尝试将内容添加到 FSFS 支持的存储库时出现相同的错误。如果可能的话,我更喜欢使用 FSFS 来实现互操作性和便于备份/恢复。
我想也许提交钩子是问题所在。当我创建存储库时,我看到所有示例挂钩都是可执行的。我曾经chmod a-x
使示例挂钩无法执行,但这并没有解决错误。我没有使用任何提交挂钩。
我使用的是 64 位 Windows 7 企业版。我正在使用 Cygwin 的 32 位安装。我昨天刚刚更新了 Cygwin 并安装了 Subversion,所以该软件是最新版本。