题
这是一个新手问题,但我在使用 SNVKit 时遇到问题。
我在应用程序中使用 SVNKit 来提交对文件的更改。我已成功将文件和文件夹添加到工作副本,但在将其提交到存储库时遇到问题。
我尝试运行的命令是“commit -m“Test Add”/svnroot/project1/”,但我不断收到“svn:“/home/user”不是工作副本”
我有一个与此类似的结构:
- /svnroot/
- /svnroot/项目1/
- /svnroot/project1/grouping1/
- /svnroot/project1/grouping1/myfiles在这里
如果我尝试提交文件,我会收到以下消息:“'/svnroot/project1/grouping1' 不受版本控制,也不是提交的一部分,但它的子项是提交的一部分。”
我可能做错了什么?
编辑:修复了目录。
解决方案 7
我已将其追踪到某处可能存在的错误。如果我不添加消息,它就会起作用。是时候进行更多挖掘了。感谢您的指点。
其他提示
如果您添加了一个目录及其子目录,但两者都没有提交,我相信如果您尝试仅提交子目录,您会收到此消息。您需要先提交父目录。
我收到此消息,并注意到我在子目录中时正在进行提交。当我切换到树的根时,它没有出现问题。
将你的-m“评论”移到最后。我只需将目录更改为您的项目目录。然后你只需输入 svn commit -m "comment" svn 就会完成剩下的工作。
我认为问题在于您正在向实际的 SVN 存储库本身提交更改,而不是进行导入、自己签出副本、进行更改,然后在添加任何子目录后从签出的工作副本进行提交。所以: import
, checkout
, 做出改变, ,然后最后做一个 add
对于每个新文件或目录以及 commit -m "message"
形成顶层。
更多信息请参见 免费在线SVN“海龟”书籍.
这并不完全清楚,因为您不一致地替换了它们,但看起来您将存储库路径/URL 与工作副本路径混淆了。如果您要添加或提交文件,请始终使用工作副本路径。在尝试使用 SVNKit 之前尝试使用命令行 svn。
如果您想提交整个新目录,请考虑使用 svn导入 反而。就目前情况而言,您可能必须恢复或采取其他行动来清理当前的混乱局面。
有时,使用某些软件(例如 eclipse 或 Versions.app)会产生此错误。在这种情况下,请退出 SVN 客户端并在命令行上执行此操作。
您可能已经做了一些重构,并且正在尝试提交“some.package.YourClass.java”,在这种情况下尝试提交目录(包)“some”。
如果你想在将来避免这样的头痛,请考虑切换到 GIT 而不是 svn。请记住,svn 将您的更改保存在 .svn 文件中,并尝试将其推送到存储库。当您提交时,它将根据此 .svn 文件推送“您的更改”。但如果您的更改非常复杂怎么办?svn 无法处理它。
另一方面,GIT:您检索所有更新,以便您的项目是最新的。当提交时,它只会覆盖存储库,因为它知道您的存储库是最新的并且没有任何麻烦。