IntelliJ和SVN:提交时“未检测到任何更改”

时间:2011-07-06 02:08:25

标签: java svn intellij-idea

我正在尝试使用Subversion在桌面和笔记本电脑之间共享项目。该项目有3个模块。我已将项目文件夹导入到我的笔记本电脑可以通过网络访问的共享文件夹中的存储库中。

我在笔记本电脑上检查了项目,然后尝试打开项目。所有模块都不可见,只有项目的.iml文件,如下面的屏幕截图所示。

我注意到.iml文件有一行“content url”,它指的是我桌面上的一个位置。也许这就是问题所在。我能做些什么呢?我是否必须在笔记本电脑上创建一个新项目并导入模块 - 因此会有2个不同的顶级.iml文件,一个用于桌面,另一个用于笔记本电脑?我是以错误的方式解决这个问题吗?

intelliJ

更新:问题似乎在于提交。当我在文件中进行更改,保存并点击Commit Changes时,我会弹出一个“未检测到更改”的弹出窗口。这在笔记本电脑和台式机上都是一样的,这意味着我之前在笔记本电脑上下载了错误的版本。我删除了存储库并创建了一个新的存储库,我的项目现在可以在我的笔记本电脑上运行,但我不能在IntelliJ中提交更改(仅通过文件管理器使用TortoiseSVN)。此外,当我从桌面计算机将项目导入版本控制时,工作副本未置于版本控制之下。所以除非我把它检查到另一个文件夹,否则无法从我的桌面更新。

我认为这个版本的IntelliJ(10.5.1)的SVN插件有问题。是否有其他人在提交更改时遇到问题?

解决方案我需要 1)更新设置|版本控制将Subversion映射到工作目录 2)导入版本控制 3)再次检查

这可能是由于模块最初是独立的项目,这些项目位于不同的存储库中。无论原因是什么,IntelliJ的“未检测到更改”对话框都不是最有用的。

6 个答案:

答案 0 :(得分:23)

VCS - >当Intellij突然停止注意到更改时,刷新文件状态为我解决了这个问题。

答案 1 :(得分:8)

refer to the FAQ

对于内容根目录,请确保它位于项目根目录或模块根目录下,在这种情况下,路径将相对于iml文件中的project / modile root存储。如果在iml中使用固定系统特定路径,则此类模块将无法在其他系统上运行。

<强>更新: 在Settings |中实际工作目录和Subversion之间进行显式映射版本控制对话框。如果您使用的是默认占位符,并且您的项目文件不在结帐根目录下,则可能就是这种情况。

执行初始导入后,您需要进行结帐才能在IDEA中使用版本控制。

答案 2 :(得分:3)

有时做VCS -> Refresh File Status对我有用。

其他时候,它什么也没做。

解决方案是

  1. 将所有文件内容复制到剪贴板/外部记事本(备份)
  2. 选择需要更新的文件的回滚。现在它与服务器保持同步,并且不包含您的新更改。
  3. 再次编辑文件(结帐),并粘贴原始文件内容。
  4. 尝试提交更改。它现在应该检测到它们。

答案 3 :(得分:2)

我今天遇到了这个问题 - 检查了一个现有项目,并且必须将SVN方案从1.6(我认为)更新为1.8。这似乎使Subversion不承认它的信念是错误的 - 即使我可以DIFF并看到相对于最新存储库版本的变化 - &#34;没有检测到变化。&#34;

我非常厌倦了我关闭了Intellij ......我一时兴起,重新打开它,有问题的文件显得很蓝......嗯......是的,现在它检测到了这些变化。

Thanks, Roy!

答案 4 :(得分:0)

我今天遇到了类似的问题,我尝试了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解决了我的问题,我能够提交更改。

答案 5 :(得分:0)

我遇到了同样的问题,似乎可能是因为在两个不同的GIT存储库中有一个同名文件。

我可以通过打开文件来修复它 - &gt;设置 - &gt;版本控制然后取消分配并重新分配GIT作为两个目录的VCS,两个目录都有文件。首先是文件中没有变化的目录,然后是另一个有变化的目录(但之前没有检测到它们)。