我尝试使用Subversion在我的台式机和笔记本电脑之间共享一个项目,该项目有3个模块,我已经将项目文件夹导入到一个共享文件夹中的存储库中,我的笔记本电脑可以通过网络访问该文件夹.
我在笔记本电脑上 checkout 了这个项目,然后试图打开这个项目。没有一个模块是可见的,只有项目的.iml文件,如下图所示。
我注意到.iml文件中有一行是“内容url”,它指的是我桌面上的一个位置。也许这就是问题所在。我该怎么办呢?我是否必须在笔记本电脑上创建一个新项目并导入模块-这样就有2个不同的顶级.iml文件,一个用于桌面,一个用于笔记本电脑?我是不是走错了路?
更新:问题似乎出在提交上。当我在文件中进行更改,保存并点击提交更改时,我会弹出一个“未检测到更改”的窗口。这在笔记本电脑和台式机上都是一样的,这意味着我之前下载了错误的版本到笔记本电脑上。我删除了存储库并创建了一个新的,我的项目现在可以在笔记本电脑上工作了,但是我不能在IntelliJ中提交更改(只能通过文件管理器使用TortoiseSVN)。另外,当我从桌面计算机将项目导入版本控制时,工作副本没有置于版本控制之下。所以我不能从桌面更新,除非我将其 checkout 到不同的文件夹。
我认为这个版本IntelliJ(10.5.1)的SVN插件有问题。其他人在提交更改时有问题吗?
解决方案我需要1)更新设置|版本控制,用于将SubversionMap到工作目录2)导入到版本控制3)再次 checkout
这可能是因为模块最初是独立的项目,位于不同的存储库中。无论是什么原因,IntelliJ的“未检测到更改”对话框都不是最有用的。
7条答案
按热度按时间62lalag41#
VCS -〉Refresh File Status为我解决了这个问题,当时Intellij突然停止注意变化。
8yoxcaq72#
拜托。
对于内容根,要确保它位于项目根或者模块根下,这种情况下路径会相对于iml文件中的project/modile根存储,如果iml中使用固定的系统特定路径,则该模块在其他系统上将无法工作。
UPDATE:在实际工作目录和设置中的Subversion之间建立显式Map|如果您正在使用默认占位符,并且项目文件不在 checkout 根目录下,则可能会出现这种情况。
在执行初始导入之后,您需要执行 checkout ,以便在IDEA中使用版本控制。
9ceoxa923#
有时候做
VCS -> Refresh File Status
对我很有效。其他时候,它什么也不做。
一种解决方案是
1.将所有文件内容复制到剪贴板/外部记事本(用于备份)
1.对需要更新的文件选择“回滚”。现在,该文件是服务器的最新文件,不包含您的新更改。
1.再次编辑文件( checkout ),并粘贴您的原始文件内容。
1.尝试提交更改。它现在应该检测到更改。
vsaztqbk4#
我今天才遇到这个问题- checkout 一个已有的项目,必须把SVN scheme从1.6(我想)更新到1.8.这似乎让Subversion没有意识到它的信念是错误的-即使我可以通过DIFF看到相对于最新版本的修改-“没有检测到修改.”
我受够了,我关闭了Intellij...一时兴起,我重新打开它,有问题的文件显示为蓝色...嗯...是的,现在它检测到了变化。
hsvhsicv5#
我也遇到了同样的问题,看起来可能是因为在两个不同的GIT存储库中有一个同名的文件。
我可以通过打开文件-〉设置-〉版本控制,然后取消分配和重新分配GIT作为两个目录的VCS,这两个目录都有这个文件。首先是文件没有变化的目录,然后是另一个有变化的目录(但之前没有检测到)。
pjngdqdw6#
我今天遇到了类似的问题,我尝试了
VCS -> Refresh File Status
,但没有帮助.当我查看Version Control->Subversion Working Copies Information
时,我发现了一个svn错误The working copy at /home/project is too old to work with svn client 1.9.4
.首先我运行了svn upgrade
,然后运行了VCS -> Refresh File Status
,解决了我的问题,我可以提交我的更改.bjg7j2ky7#
这里的其他解决方案都帮不了我。
最后再次 checkout 整个存储库,将所有子文件夹复制到新 checkout 的文件夹并提交更改。
已删除旧文件夹并将新文件夹重命名为旧文件夹名称。