Perforce changelist issues

It's good to see the support for perforce changelists come in. But I have hit a few issues so far:

1. The changes tab's "Default" changelist is listing files that no longer exist on my system. Doing a "Rollback" on the files has no effect. I tried blowing away Idea's cache, but this did not change anything. Where is it picking up these files from? Is there a way to get rid of these references?

2. It would be nice if the Perforce Changelist number was a part of the changelist description, because this number is often used by perforce users, and currently I must switch back to the Perforce client to match the description to a number.

3. If the Perforce server is down, I am getting the following NullPointerException.

No message
java.lang.NullPointerException
at org.jetbrains.idea.perforce.application.ChangeListSynchronizer$ConnectionKey.hashCode(ChangeListSynchronizer.java:97)
at java.util.HashMap.hash(Unknown Source)
at java.util.HashMap.containsKey(Unknown Source)
at java.util.HashSet.contains(Unknown Source)
at org.jetbrains.idea.perforce.application.ChangeListSynchronizer.updateOpenedFiles(ChangeListSynchronizer.java:412)
at org.jetbrains.idea.perforce.application.PerforceManager$MyUpdateRequest.run(PerforceManager.java:308)
at com.intellij.util.Alarm$1.run(Alarm.java:103)
at com.intellij.util.Alarm$MyThread$1.run(Alarm.java:246)
at com.intellij.util.Alarm$MyThread.run(Alarm.java:266)

Thanks,
-Bruce

23 comments
Comment actions Permalink

A couple more:
4. There doesn't seem to be any way to set a current changelist, to which any newly opened files would be assigned. Even after doing "Set default changelist" to a different changelist, all newly opened files are assigned to the base "Default" list.

5. When I try to move a file to another changelist from within IDEA, the move was not reflected in Perforce, and after the next refresh, it was back in the Default list.

6. I got another NullPointerException, this time when the Perforce server was available. I'm not sure what action came immediately before this exception.

No message
java.lang.NullPointerException
at org.jetbrains.idea.perforce.application.PerforceManager.getFileByDepotName(PerforceManager.java:263)
at org.jetbrains.idea.perforce.perforce.Change.createOn(Change.java:42)
at org.jetbrains.idea.perforce.perforce.PerfCommands.p4change(PerfCommands.java:507)
at org.jetbrains.idea.perforce.perforce.PerfCommands.p4ChangesForConnection(PerfCommands.java:490)
at org.jetbrains.idea.perforce.application.PerforceChangeProvider.processConnection(PerforceChangeProvider.java:115)
at org.jetbrains.idea.perforce.application.PerforceChangeProvider.getChanges(PerforceChangeProvider.java:62)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:97)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$1100(ChangeListManagerImpl.java:280)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$4.run(ChangeListManagerImpl.java:4)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

7. I got the same exception as in item #3 above, but this time the Perforce server was available, and after the exception, IDEA crashed.

Thanks,
-Bruce

0
Comment actions Permalink

Hello brucet,

b> It's good to see the support for perforce changelists come in. But I
b> have hit a few issues so far:
b>
b> 1. The changes tab's "Default" changelist is listing files that no
b> longer exist on my system. Doing a "Rollback" on the files has no
b> effect. I tried blowing away Idea's cache, but this did not change
b> anything. Where is it picking up these files from? Is there a way
b> to get rid of these references?

Do you see these files in the "Default" changelist in the Perforce client?
If you do, you can get rid of them by reverting them from the client. The
problem of not being able to revert the files from IDEA is covered by http://www.jetbrains.net/jira/browse/IDEADEV-7004
.

If you don't see the files in the Perforce client, we'll need to investigate
this further.

b> 2. It would be nice if the Perforce Changelist number was a part of
b> the changelist description, because this number is often used by
b> perforce users, and currently I must switch back to the Perforce
b> client to match the description to a number.

http://www.jetbrains.net/jira/browse/IDEADEV-7058

b> 3. If the Perforce server is down, I am getting the following
b> NullPointerException.

Fixed in next EAP.

Thanks a lot for your feedback!

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"




0
Comment actions Permalink

Do you see these files in the "Default" changelist in the Perforce client?
If you do, you can get rid of them by reverting them from the client.


No, they only exist in the "Default" changes item in IntelliJ. They may have been in there from when I was playing with the "Changes" support in a previous Demetra build, before the Perforce support went in.

-Bruce

0
Comment actions Permalink

Hello Bruce,

>> Do you see these files in the "Default" changelist in the Perforce
>> client? If you do, you can get rid of them by reverting them from the
>> client.
>>
b> No, they only exist in the "Default" changes item in IntelliJ. They
b> may have been in there from when I was playing with the "Changes"
b> support in a previous Demetra build, before the Perforce support went
b> in.

Does your project use any other version control systems besides Perforce?

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

No, just Perforce. And when Perforce integration is disabled, they persist.

Where does IDEA keep its own list of changes?

Thanks,
-Bruce

0
Comment actions Permalink

Hello Bruce,

b> No, just Perforce. And when Perforce integration is disabled, they
b> persist.
b>
b> Where does IDEA keep its own list of changes?

In the .iws file. You can clean the contents of the ]]>
section - this won't hurt anything because IDEA will pick up the real changes
during Perforce sync.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Hello brucet,

b> A couple more:
b> 4. There doesn't seem to be any way to set a current changelist, to
b> which any newly opened files would be assigned. Even after doing
b> "Set default changelist" to a different changelist, all newly opened
b> files are assigned to the base "Default" list.

Fixed in next EAP.

b> 5. When I try to move a file to another changelist from within IDEA,
b> the move was not reflected in Perforce, and after the next refresh,
b> it was back in the Default list.

Did you get any exceptions while doing so, or before this? Can you reproduce
this after a clean restart of IDEA? If yes, what kind of change was that
(add, edit, branch, delete etc.)?

b>
b> 6. I got another NullPointerException, this time when the Perforce
b> server was available. I'm not sure what action came immediately
b> before this exception.

Should be fixed in next EAP.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

A coworker and I were both getting repeated exceptions thrown from the Perforce module using 5380. We both have submitted every one we got, I will see if I can turn up my submissions to add to this thread.

0
Comment actions Permalink

Did you get any exceptions while doing so, or before this? Can you reproduce
this after a clean restart of IDEA? If yes, what kind of change was that
(add, edit, branch, delete etc.)?


No, I don't believe there were any exceptions around when this happened. The change I was making was to drag a file from one changelist to another on the Changes tab.

I hit another one in which I got dozens of copies of the same changelist showing up in the Changes tab. Also a few times IDEA has hung on me indefinitely during Perforce sync, I don't know whether this is related to the Perforce integration or the EAP.

It seems like there are a few issues that will be fixed in the next EAP, I have switched back to 5.1 for now and will wait until that comes out and then will see if any of the issues remain.

Thanks,
-Bruce

0
Comment actions Permalink

Hello brucet,

b> I hit another one in which I got dozens of copies of the same
b> changelist showing up in the Changes tab. Also a few times IDEA has
b> hung on me indefinitely during Perforce sync, I don't know whether
b> this is related to the Perforce integration or the EAP.

Multiple copies could have been caused by unimplemented handling of changelist
renames (also fixed in next EAP).

If you see a hang again, could you please take a thread dump (Ctrl-Break
in the console) to see where exactly it hangs?

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

I tried it again today on build 5383. I had the following issues with it:

1. I'm getting this assertion failure upon syncing:

Assertion failed
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:89)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:96)
at org.jetbrains.idea.perforce.application.ChangeListSynchronizer.findChangeListName(ChangeListSynchronizer.java:412)
at org.jetbrains.idea.perforce.application.ChangeListSynchronizer.findChangeList(ChangeListSynchronizer.java:423)
at org.jetbrains.idea.perforce.application.ChangeListSynchronizer.findOrCreateChangeList(ChangeListSynchronizer.java:429)
at org.jetbrains.idea.perforce.application.PerforceChangeProvider.processConnection(PerforceChangeProvider.java:121)
at org.jetbrains.idea.perforce.application.PerforceChangeProvider.getChanges(PerforceChangeProvider.java:59)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:143)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$500(ChangeListManagerImpl.java:211)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$3.run(ChangeListManagerImpl.java:0)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


2. I am still getting multiple instances of the same changelist showing up (I did clear out the list from the iws file first). There appears to be one IDEA changelist for each file in a single Perforce changelist. Even more oddly, the files in the Perforce changelist seem to cycle between the multiple IDEA changelists. So if I open one of the IDEA changelists, each second or so its single file will switch from "build.xml" to "MyClass1.java" to "MyClass2.java", etc. Strange! See attached file.

3. There seems to be far more traffic between IDEA and the Perforce server than in 5.1 (which I notice because I'm on the other side of the world from our Perforce server.) On each sync, I'm getting about 2-3MB data received, versus a trivial amount of traffic on 5.1.

4. Although IDEADEV-7058 is listed as being resolved in build 5383, I am not seeing the changelist numbers show up. (Note that the "18602" in the screenshot is a part of the description, not the changelist number, which is "4532").

Thanks,
-Bruce

0
Comment actions Permalink

Hello brucet,

b> I tried it again today on build 5383. I had the following issues
b> with it:

Could you please delete the and sections from the .iws file and test again? It's very likely that at least some of the problems are caused by incorrect synchronization data left over from the previous build. b> 3. There seems to be far more traffic between IDEA and the Perforce b> server than in 5.1 (which I notice because I'm on the other side of b> the world from our Perforce server.) On each sync, I'm getting about b>]]> 2-3MB data received, versus a trivial amount of traffic on 5.1.

The Changes view update includes the calculation of unversioned files, which
is currently done by comparing the output of 'p4 have' and the list of files
in the filesystem. We'll investigate the ways to make it more efficient.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

This was after clearing out the ChangeListManager component, and to be sure, I cleared it out again and the duplicates returned.

Oddly, it is only happening on one of the six Perforce changelists I have open. The others don't seem to have this problem. I can't see any obvious differences between this changelist and any of the others... Tomorrow I will migrate the files and jobs from the problem changelist into a new changelist and see whether the problem persists.

-Bruce

0
Comment actions Permalink

Hello brucet,

b> This was after clearing out the ChangeListManager component, and to
b> be sure, I cleared it out again and the duplicates returned.
b>
b> Oddly, it is only happening on one of the six Perforce changelists I
b> have open. The others don't seem to have this problem. I can't see
b> any obvious differences between this changelist and any of the
b> others... Tomorrow I will migrate the files and jobs from the
b> problem changelist into a new changelist and see whether the problem
b> persists.

Note: there are two components that need to be cleared out, not one. The
second is ChangeListSynchronizer.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

I don't have any files Open for Edit in any changelists. Everytime I activate Idea, I am getting this exception:

File(s) not opened on this client.

com.intellij.openapi.vcs.VcsException: File(s) not opened on this client.

at org.jetbrains.idea.perforce.perforce.PerfCommands.checkError(PerfCommands.java:1564)
at org.jetbrains.idea.perforce.perforce.PerfCommands.p4Opened(PerfCommands.java:1635)
at org.jetbrains.idea.perforce.application.ChangeListSynchronizer.updateOpenedFiles(ChangeListSynchronizer.java:459)
at org.jetbrains.idea.perforce.application.PerforceManager$MyUpdateRequest.run(PerforceManager.java:311)
at com.intellij.util.Alarm$1.run(Alarm.java:103)
at com.intellij.util.Alarm$MyThread$1.run(Alarm.java:246)
at com.intellij.util.Alarm$MyThread.run(Alarm.java:266)

0
Comment actions Permalink

Hello Jason,

Do you have any files shown in the Changes view of IDEA? Does the problem
disappear if you clean the section of the .iws file and restart IDEA? JB> I don't have any files Open for Edit in any changelists. Everytime JB> I activate Idea, I am getting this exception: JB> JB> File(s) not opened on this client. JB> JB> com.intellij.openapi.vcs.VcsException: File(s) not opened on this JB> client. JB> JB> at JB> org.jetbrains.idea.perforce.perforce.PerfCommands.checkError(PerfCom JB> mands.java:1564) JB> at JB> org.jetbrains.idea.perforce.perforce.PerfCommands.p4Opened(PerfComma JB> nds.java:1635) JB> at JB> org.jetbrains.idea.perforce.application.ChangeListSynchronizer.updat JB> eOpenedFiles(ChangeListSynchronizer.java:459) JB> at JB> org.jetbrains.idea.perforce.application.PerforceManager$MyUpdateRequ JB> est.run(PerforceManager.java:311) JB> at com.intellij.util.Alarm$1.run(Alarm.java:103) JB> at com.intellij.util.Alarm$MyThread$1.run(Alarm.java:246) JB>]]> at com.intellij.util.Alarm$MyThread.run(Alarm.java:266)
--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

When I tried to invoke the Commit Project dialog, it said No Changes Detected.

After removing the ]]> section of the .iws file and restarting Idea, the problem still occurs.

0
Comment actions Permalink

Hello Jason,

JB> When I tried to invoke the Commit Project dialog, it said No Changes
JB> Detected.

Do you see anything in the Changes view (Window | Tool Windows | Changes)?

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Thanks I did miss the second component. Once I cleared this out, almost all of the issues I hit were resolved.

The two remaining issues are:
1. The Perforce changelist numbers are not showing up in the description, despite IDEADEV-7058 being listed as fixed in 5383.

2. Unfortunately the amount of traffic being generated between my client and the Perforce server is too high for me to continue using this build. In addition, there is general sluggishness in the build which I am guessing (but am not sure) is related to IDEA waiting for data from the Perforce server.

Thanks,
-Bruce

0
Comment actions Permalink

Hello Bruce,

b> 1. The Perforce changelist numbers are not showing up in the
b> description, despite IDEADEV-7058 being listed as fixed in 5383.

Just to clarify: the Perforce changelist numbers are currently only displayed
in the Changes view, in the changelist summary nodes. Is this where you expect
to see them?

b> 2. Unfortunately the amount of traffic being generated between my
b> client and the Perforce server is too high for me to continue using
b> this build. In addition, there is general sluggishness in the build
b> which I am guessing (but am not sure) is related to IDEA waiting for
b> data from the Perforce server.

We've already made some improvements in the next build, and it's likely that
more will come.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Just to clarify: the Perforce changelist numbers are currently only displayed
in the Changes view, in the changelist summary nodes. Is this where you expect
to see them?


I was expecting to see the number in the window at the bottom of IDEA that shows the changelists. Is this the "Changes view"? Or is it something else? See the attached screenshot.

We've already made some improvements in the next build, and it's likely that
more will come.


Great, looking forward to it.

Thanks,
-Bruce



Attachment(s):
ChangesTab.GIF
0
Comment actions Permalink

Sorry, please ignore the last comment regarding the changelist numbers, I seem to have a blindspot in the middle of my eyes.

I guess I was just expecting the changelist number to prefix the description as it does in the Perforce UI rather than the end, but that's no excuse for me ignoring what's right in front of me!

Thanks,
-Bruce

0
Comment actions Permalink

Dmitry,

DJ> Do you see anything in the Changes view (Window |
DJ> Tool Windows | Changes)?

There are no files under my "Default" changelist but I have 70 files under the "Unversioned Files" tree.

This is still happening for me in build 5557.

-Jason

0

Please sign in to leave a comment.