将目录提交给Subversion

时间:2008-09-26 14:45:45

标签: svn svnkit

有点新手问题,但我在使用SNVKit时遇到了问题。

我在应用程序中使用SVNKit来提交对文件的更改。我已成功将文件和文件夹添加到工作副本中,但我在将其提交到存储库时遇到问题。

我试图运行的命令是'commit -m'测试添加“/ svnroot / project1 /”但我一直得到“svn:'/ home / user'不是工作副本”

我的结构类似于:

  • / svnroot /
  • / svnroot / PROJECT1 /
  • / svnroot / PROJECT1 / grouping1 /
  • / svnroot / PROJECT1 / grouping1 / myfilesarehere

如果我尝试提交文件,我会收到以下消息:“'/ svnroot / project1 / grouping1'不受版本控制,不属于提交,但其子代是提交的一部分。”< / p>

我可能做错了什么?

编辑:修正了目录。

9 个答案:

答案 0 :(得分:21)

如果您同时添加了一个目录及其子目录,但两者都未提交,我相信如果您尝试仅提交该子目录,则会收到此消息。您需要先提交父目录。

答案 1 :(得分:2)

我收到了这条消息,我注意到我在子目录中时正在进行提交。当我切换到树的根时,它没有问题。

答案 2 :(得分:1)

将你的-m“评论”移到最后。 我只想将目录更改为项目目录。然后你只需输入svn commit -m“comment”,svn就会完成剩下的工作。

答案 3 :(得分:1)

我认为问题在于您正在对实际的SVN存储库本身进行更改,而不是进行导入,为自己检出副本,进行更改,然后在添加任何内容后从签出的工作副本中进行提交子目录。所以:importcheckout进行更改,最后为每个新文件或目录执行add,并commit -m "message"构成顶级

free online SVN "turtle" book

中的更多信息

答案 4 :(得分:0)

它并不完全清楚,因为您不一致地替换它们,但看起来您正在使存储库路径/ URL与工作副本路径混淆。如果要添加或提交文件,请始终使用工作副本路径。在尝试使用SVNKit之前,尝试使用命令行svn。

答案 5 :(得分:0)

如果要提交整个新目录,请考虑使用svn import。就目前而言,您可能需要恢复或其他一些行动来清理目前的混乱。

答案 6 :(得分:0)

我已将其追踪到某处可能存在的错误。如果我不添加消息就可以了。是时候挖掘了更多。感谢指点。

答案 7 :(得分:0)

有时,使用某些软件(例如eclipse或Versions.app)会产生此错误。在这种情况下,退出SVN客户端并在命令行上执行此操作。

答案 8 :(得分:0)

您可能已经完成了一些重构,并且您尝试提交'some.package.YourClass.java',在这种情况下尝试将目录(包)提交为“some”。

如果您想在将来避免这样的头痛,请考虑切换到GIT而不是svn。请记住,svn会将您的更改保存在.svn文件中,并尝试将其更改为存储库。提交时,将根据此.svn文件推送“您的更改”。但是,如果你的变化是非常复杂的呢? svn无法处理它。

另一方面,

GIT:您检索所有更新,以便您的项目是最新的。并且在提交它时只会覆盖回购,因为它知道你的回购是最新的而且没有喧嚣。