- Bug fixes
- Changed supported IDE versions - removed support for all versions of the IDE before v212.
- Refactored to simplify connection configuration code. This is starting a change to the code
- Upgraded referenced libraries.
- Bug fixes
- RSH connections would incorrectly add "localhost:" to the command if the command name had no ':' character in it.
- This primarily affected tests running on Linux.
- The new version includes extra checking before using an RSH connection to ensure the executable file exists and is executable. However, the logic in place only works if the executable has no spaces in the file name.
- Improved the Active Connections panel to better refresh when the connection state changes, and now includes VCS roots that have an invalid Perforce configuration.
- Internally changed the association of workspace associations to the VCS root registration, which allows for more accurate file associations. This also alters how the Active Connections panel associates connections to roots. This is expected to eliminate many places where the plugin showed odd behavior.
- RSH connections would incorrectly add "localhost:" to the command if the command name had no ':' character in it.
- Changed supported IDE versions.
- Removed all code that requires v211 and prior support.
- Internally added jar support for compiling against 212, 213, and 221.
- v203 and v211 were originally planned for support, but they were removed due to complications in the codebase for backwards compatibility.
- Upgraded required minimum compiler compatibility to JDK 11.
- Removed all code that requires v211 and prior support.
- Nearly all bundled libraries have been updated. The included
bom.xml
file includes the updated information. - Refactored to simplify connection configuration code.
- This is starting a change to the code to be organized around specific, distinct bits of functionality, rather than around the IDE extension points.
- Bug fixes
- Change provider make an incorrect assumption that the IDE API
getListsCopy
call returned a mutable value (bug #225).
- Bug fixes
- Fixed the version compatibility check to work with IDE 2020.2.1 (minor version was reported as "2.1") and with Android Studio 4.0. Now, the check instead informs the user about the build number, which should be universal across IDEs.
- Bug fixes
- Fixed a bug related to an NPE on a cached component.
- Fixed a bug where the encoding from the Perforce server wasn't supported by Java (specifically,
utf8-bom
). It now tries to strip the "-bom" off, then will resort to the default enocding of the local computer. (Bug #220)
- Warning about IDE before 2018.2.
- Upgraded older libraries.
- Created a bill of materials.
- Build improvements
- Bug fixes
- Warning about IDE before 2018.2.
- Backwards compatibility for these IDE versions will be removed soon.
- Upgraded older libraries.
- Direct dependencies:
- commons-compress from v1.16.1 to 1.20
- commons-io from v2.5 to v2.7
- commons-lang3 from v3.7 to v3.10
- gson from v2.8.2 to v2.8.6
- httpclient from v4.5.5 to v4.5.12
- httpcore from v4.4.5 to v4.4.9
- jna and jna-platform from v5.2.0 to v5.5.0
- jsr305 from v3.0.1 to v3.0.2
- Removed the dependency on guava (it's now strictly a test dependency)
- Test dependencies:
- guava from v19.0 to 29.0
- apiguardian from v1.0.0 to v1.1.0
- junit-platform-commons from v1.1.0 to v1.6.2
- junit-platform-engine from v1.1.0 to v1.6.2
- junit-platform-launcher from v1.1.0 to v1.6.2
- junit-platform-runner from v1.1.0 to v1.6.2
- junit-platform-suite-api from v1.1.0 to v1.6.2
- junit-jupiter-api from v5.1.0 to v5.6.2
- junit-jupiter-engine from v5.1.0 to v5.6.2
- junit-vintage-engine from v5.1.0 to v5.6.2
- TO BE COMPLETED...
- Direct dependencies:
- Created a bill of materials.
- Because the plugin is distributed as a "fat jar", it means the end-users have no easy way to understand what libraries are implicitly included. The new bill of materials (BOM) describes what the end-user receives.
- Build improvements
- Upgraded gradle from 4.10 to 6.5
- Bug fixes
- Added some
p4ignore
compatibility (#219). Note that thep4ignore
only applies to files open for add; files already added will not use the ignore. There's a small edge case where, if a file is read-only, not added, ignorable, and the user edits the file through typing, then the file will be added to a changelist. - Improved charset interpretation (#217). This wasn't consistently handled before. Now, there's a user preference to select the setting of file encoding - the default is to use whatever the server has. Other options are to use what the IDE thinks is the file encoding, or use the client configured value (
P4CHARSET
).
- Added some
- Bug fixes
- Upgraded to P4Java v19.1
- Bug fixes
- Fix for Local Changed Diff View for Edited File Generates "null file spec in arguments" (#213). This same bug seems to be also the source of many issues around
- Upgraded to P4Java v19.1
- The plugin uses a modified version of official Perforce P4Java library. The modified version has been upgraded to reflect updates in the official 19.1 release.
- Bug fixes
- Bug fixes
- Removed a duplicate event registration, which on Android Studio causes the plugin not to load (#212).
- Bug fixes
- Bug fixes
- Fixed part of a bug where the VCS root configuration shared options between root directories (#211). This is only a partial fix, as there's an underlying bug in the IDE that causes this problem. The resolved properties panel shows the path that's being set, so if the UI seems to show the wrong path, it's because of this underlying bug.
- Fixed some NPEs caused by certain error and logging conditions.
- Normalized the path view in the connections panel for Windows.
- Fixed a problem when file locations don't map to a client workspace file ("null file spec in arguments").
- Bug fixes
- Bug fixes
- Fixed a problem where a write is performed to a read-only list (#210 and #207).
- Bug fixes
- Low-Level Improvements
- Bug fixes
- Altered the server connection to attempt to use the client configuration, even for calls that don't strictly need it (#208). This should allow additional properties, such as
P4HOST
, to be passed to server connections. - Fixed an issue where diff display could show a diff against a changelist instead of a revision number.
- Fixed an issue where the root paths would not be mapped to the client configuration correctly (more issues carried over from #209).
- Altered the server connection to attempt to use the client configuration, even for calls that don't strictly need it (#208). This should allow additional properties, such as
- Low-Level Improvements
- Updated the underlying Perforce interaction code to require a client when calling out to file retrieval based commands, because they can require a client to perform local file to depot mappings.
- Cleaned up some of the logging.
- Bug fixes
- Bug fixes
- Fixed how the VCS Root Directory maps to the configuration (#209). It should now allow for multiple workspace root directories to have their own, independent configurations.
- Deprecated API usage cleanup
- Bug fixes
- Deprecated API usage cleanup
- Cleaned up some of the deprecated API usage that was introduced in v193 of the IDE (#205).
- Bug fixes
- Added improvements to catch the out-of-sync problem that can happen after submitting a changelist. It can still get weird, but at least it's recoverable now. (#206)
- Build changes for supporting future IDE versions (v200)
- Build changes for supporting future IDE versions (v200) (#203)
- Added v192 libraries and build support for compiling and testing against v192.
- Changed swarm unit tests to fix environmental dependencies.
- Removed usage of deprecated API that will be removed in v2020.1
- Removed use of icons that will be removed.
- Removed use of
Project.getBaseDir()
- Replaced use of
ApplicationManager.getApplication().getComponent(String)
with theClass
argument variant. - Replaced
ProjectManager.getInstance().addProjectManagerListener(...)
with message busTOPIC
use. - Replaced use of
ChangeListManager.getInstance(project).scheduleUpdate(boolean)
with the no-argument variant. - Moved the "todo.util.mock" classes into the testing tree.
- Removed
@Override
for deprecated API overrides. Methods are still there, they just aren't marked as override anymore. - There's still a lot around, but this cleaned up some of it. Most of the remaining bits are use of API that has no alternative in earlier supported versions.
- Bug fixes
- Bug fixes:
- Fix for IDE 2019.2 releases, which altered the expectations for which thread different tasks should run in. (#199)
- Bug fixes
- Bug fixes:
- "Revert unchanged" was unconditionally reverting (#181 again).
- Added additional logging to the rollback calls to better catch the source of these issues.
- "Environment" configuration on Windows and JDK 11 can now inspect the Registry for information.
- Bug fixes
- Minor code improvements
- "Environment" configuration on Windows and JDK 11 can now inspect the
Registry for information.
- JDK 11 removed the ability to run the "hack" to extract Windows registry values, so that capability wasn't enabled on the JDK 11 release of the IDE.
- Replaced that functionality (which required an Oracle JDK anyway) with the "jna" library to perform the operation correctly.
- Bug fixes
- Fixed an issue where 0 files could be requested in an
fstat
call, which generates a superfluous call to the server and shows up as a P4 cmd problem in the logs. - Fixed an issue where, in some cases, fstat was not limiting the number of results (#197).
- Changed reporting on a successful sync; it must happen from within the EDT (#196).
- Fixed an issue where 0 files could be requested in an
- Minor code improvements
- General code cleanup.
- Bug fixes
- Bug fixes
- Fixed a NPE when running the IDE with JDK 11 and Windows.
- Improved messaging when cache access takes too long.
- Bug fixes
- Improved messaging when cache access takes too long.
- Cache access due to timeouts used to be very inconsistent, anywhere from just messages in the log, to reporting a failure with the plugin. Now, the messaging is reported to the user in a consistent way.
- Bug fixes
- Fixed a NPE that can happen during revert. (#195)
- Bug fixes
- Bug fixes
- Changed logic behind add, edit, delete, and move operations. If there was a previous,
un-checked-in operation on a file and a new one requires to revert that change, now the
file contents won't be altered with the revert (it now runs a
p4 revert -k
). - Work to reduce memory leak (#193). Turn on debugging for
#net.groboclown.p4plugin.components.CacheComponent
to see details of the biggest memory consumer. - Mildly enhanced charset detection.
- General code cleanup that may fix some possible lingering NPE and related issues.
- Enhanced reporting information around inadvertent revert (#181), which includes an option to show when reverts happen, to what files, and why.
- Changed logic behind add, edit, delete, and move operations. If there was a previous,
un-checked-in operation on a file and a new one requires to revert that change, now the
file contents won't be altered with the revert (it now runs a
- Added retry connection on socket timeout.
- Bug fixes
- Added retry connection on socket timeout.
- Even with an extended socket timeout, the server connection would sometimes fail. (#193)
- Bug fixes
- When the socket timeout or lock timeout change, the new value would not take effect until the project is reopened. This should now take effect soon after setting the value.
- Completed the User Preferences.
- Added build support for testing against 18.2 and 18.3.
- Completed the User Preferences.
- The User Preferences panel now correctly shows the user changeable options. (#178)
- Added build support for testing against 18.2 and 18.3.
- Altered usage of IDE APIs to reflect changes in 18.2 and 18.3. This should help with compatibility.
- Added libraries and build tool support for newer versions of the IDE.
- Cut down the number of jars in the lib folder for older IDE versions, to only keep what's needed by the build.
- No longer compatible with versions before 2017.1.
- Updated code to work with 2017.1 features.
- Complete rewrite of connection and caching mechanism.
- Active Connection view.
- New Browsing Features.
- New Project from Version Control support added.
- Repository changelist history view
- Upgraded p4java dependency to r18-1.
- Shipping as single Jar file.
- Updated build.
- No longer compatible with versions before 2017.1.
- Updated code to work with 2017.1 features.
- Removed dependency upon the external lib project. Pulling the project now gets everything.
- Included major release libraries from IDEA, built from source.
- These are broken up into small libraries to reduce their size, so we don't need to include the normal gigabyte sized jar.
- Complete rewrite of connection and caching mechanism.
- In order to support the 2017.1 per-VCS Root configuration, the plugin now maintains the connection information in the VCS root level.
- Relative configuration files are no longer supported.
- Offline support is better handled through an integrated caching mechanism.
- Connection and caching are now designed for proper multi-threaded operation, so there should be a significant performance boost.
- Passwords are no longer kept in memory by the plugin, but instead use the IDE's password storage mechanism. Before, only passwords that the user entered through the dialog were stored by the IDE.
- File annotations should be faster now.
- Works when running in one of the
AltRoot
for a client workspace.
- Active Connection view.
- Rather than using a small status-bar widget, connections are now viewed through a Version Control view tab called "Active Connections".
- Gives a better view of online status for each server.
- Permits viewing what changes are cached, ready to be sent to the server.
- New Browsing Features.
- You can browse for jobs when submitting a file.
- You can browse for labels when synchronizing a directory.
- New Project from Version Control support.
- The plugin now supports File -> New -> Project from Version Control
- The new project will need to be configured after the synchronize; the settings used to synchronize the project directory, unfortunately, cannot be put into the new project settings.
- Repository changelist history view
- The Version Control Repository panel now shows changelist history.
- Individual file history shows revision number as the primary column, but also shows the changelist number.
- Upgraded p4java dependency to r18-1
- Requires additional dependent jars.
- Allows for more thorough plugin unit tests.
- Shipped as single Jar file.
- Due to unknown issues with IDEA loading a zip file, the plugin is now distributed as a single jar file with all dependencies unpacked inside it.
- Updated build.
- Builds now use Gradle.
- Project split into smaller pieces, to hopefully make the project easier to comprehend.
- The
swarm-java-simplified
module renamed toswarm
- Last version to support IDE versions before 2017.1
- First step at proper symlink handling.
- Implemented "Shelve files to Server" action.
- Bug fixes.
- Last version to support IDE versions before release 2017.1
(Builds before 171.0).
- As of IntelliJ 2018.1, the maintenance of backwards compatibility with older IDE versions has become difficult without heroic refactoring efforts.
- Newer Android Studio versions will continue to be supported.
- A branch will be made to allow bug fixes to happen in the older version, or if future developers want to carry on support.
- First step at proper symlink handling. (#156)
- Files marked with the symlink type must be handled carefully.
Perforce does not natively understand that if
//a/b/c
is a symlink to//a/e
, then the file//a/b/c/d
should actually be added as//a/e/d
, but instead fails to add the file because//a/b/c
exists as a file (symlink), and not as a directory. - This first step makes one extra call to the server when attempting to add a file. Now, the parent directories of the added file are checked to see if any of them are symlinks. If so, that triggers the new symlink resolution logic.
- Files marked with the symlink type must be handled carefully.
Perforce does not natively understand that if
- Implemented "Shelve files to Server" action.
- Performs the Perforce "shelve" command to archive files to the server.
- Bug fixes.
- Cleaned up some error messages from the Perforce server (removes the
%'
and'%
markings). - Improved the configuration UI to show the full text of error messages. (#161)
- Improved the properties UI elements to provide tool tips for each property. (#159)
- Fixed color bug (#168)
- Cleaned up some error messages from the Perforce server (removes the
- Testing improvements
- Added gradle scripts to setup integration testing environments more easily.
- Started on the Create Swarm Review dialog.
- Bug fixes.
- Started on the Create Swarm Review dialog.
- By right clicking on a changelist, you can select to create a swarm review,
if the plugin detected a swarm server (by looking at the result of
p4 property -l -n P4.Swarm.URL
). Development is still in the early phases.
- By right clicking on a changelist, you can select to create a swarm review,
if the plugin detected a swarm server (by looking at the result of
- Bug Fixes.
- Improved detection of changelist membership in a Perforce server. It was missing the default changelist.
- Fixed bug where files couldn't be moved to the default changelist from a numbered changelist. This had to do with the new changelist being called "default", and instead the command was silently failing with "unknown changelist 0".
- Some error messages were stripping a backslash when being displayed.
- Reduced some cases where a low-level exception would be thrown when synchronizing files from the server.
- Fixed a NullPointerException that could happen when trying to connect to a swarm server.
- Fixed a date parse error that could happen while fetching the client workspace.
- Fixed a IllegalStateException that could happen when trying to show a docked component to the version control window. (#158)
- Fixed a recursion error on Android Studio. (#157)
- Able to show changelist details from the file history view.
- Bug fixes.
- Able to show changelist details from the file history view.
- Right-click on the history entry and select Describe Changelist, or click the info icon on the history window toolbar.
- Bug fixes.
- Fixed issue with stored Perforce server configuration causing the project list to not load correctly. This only affected projects that were opened with an existing Perforce connection. (#155)
- Plugin description improvements
- Bug fixes.
- Plugin description improvements
- Added details to the plugin description page to better describe the configuration process.
- Bug fixes.
- Backed out attempted fix to limit the login failure error dialogs. This seems to have caused the dialog to not show up at all in some cases. (#154, #151)
- Backed out the swarm login attempt. (#153)
- Started Helix Swarm integration.
- Minor improvements to the configuration panel.
- Bug fixes.
- Started Helix Swarm integration.
- The beginnings of Helix Swarm server integration is present in the code. It checks whether the Perforce server has a Swarm server registered with it, and will attempt to make a connection to the registered Swarm servers.
- Minor improvements to the configuration panel.
- Changed (again) the method for looking up the directory path for different configurations. Configurations now can be associated with the VCS roots, rather than the project root. This means that file location configurations will mark themselves as the directory where the file is located (or up to the VCS roots); future work may include a "global" file location vs. a local file location. (#148)
- Joined problems and resolved properties into a single panel.
- Bug fixes.
- Fixed the pop-up link text no longer show an invalid character.
- Added a minor improvement that limits the number of duplicate "enter a password" error messages in some circumstances.
- Dead code clean up.
- Bug fixes.
- Bug fixes.
- Better handling of shelved files in the changelist view on a refresh request.
- Changed the shelved file colors so that they're less obvious than the normal files.
- Fix a
NullPointerException
that occurred on reading the state of some shelved files. (#150)
- Added option to show Perforce connection issues as notifications, rather than as dialog boxes.
- Added option to view shelved files in the changelist view.
- Bug fixes.
- Added option to show Perforce connection issues as notifications, rather than as
dialog boxes.
- In the user preferences, you can change the alert behavior to show informative messages, and errors that require actions, in the notification pop-ups.
- If this seems like a preferred method, the default behavior will change to showing messages as notifications.
- Notification behavior can be changed in the Settings dialog, under Appearance / Notification.
- Added option to view shelved files in the changelist view.
- Change the user preference to see shelved files in the changelist view.
- This is the start of support for working with shelved files, and integration with Perforce Swarm servers.
- Bug fixes.
- Fixed regression where the multiple config file paths would not look at the parents correctly. (#148)
- Fixed a null filespec error.
- Added support for loading "P4ENVIRO" from the Windows registry.
- Added support for logging in with the "P4LOGINSSO" value.
- Bug fixes.
- Added support for "P4ENVIRO" loaded from the Windows registry.
- Before, the Windows registry loader would not correctly read in the
P4ENVIRO
setting from the Windows registry.
- Before, the Windows registry loader would not correctly read in the
- Added support for logging in with the "P4LOGINSSO" value. (#147)
- If the user isn't logged in, but has the
P4LOGINSSO
value set, then that is now used in the login dance. Before, the plugin would ask the user for the password.
- If the user isn't logged in, but has the
- Bug fixes.
- Fixed the Windows registry value loading (#146).
- Reverted back to component file locations being based at their natural file locations, rather than at the project root (#148).
- Change "maximum timeout" setting meaning.
- Add lock timeout user setting.
- Bug fixes.
- Change "maximum timeout" setting meaning.
- The "maximum timeout" user setting hasn't been used since the 0.7 release, so it now means the maximum socket time to live, which allows the user to avoid a potential issue with the underlying Perforce API. (#85)
- Add lock timeout user setting.
- Allows the user to adjust how long the plugin waits for the connection until the next one comes free.
- Useful for users that have a very slow connection to the server.
- Bug fixes.
- Went back to actually using the "reconnect with each request" setting. Before, this setting was ignored and all connections were reconnected before being used. Users with slow connections should see a performance boost with this disabled.
- Clarified error message when reverting files while working offline.
- Reduced number of false error messages when the plugin hasn't loaded the client spec when requests are made.
- Add user preference for socket SO timeout.
- Bug fixes.
- Add user preference for socket SO timeout.
- Added user preference to change the socket SO timeout, to allow for fixing potential SocketTimeoutExceptions. (#85)
- Bug fixes.
- Remove issues around setting up default Perforce configuration (File -> Other Settings -> Default Settings...). (#143)
- Added back the SSL key strength checking and error reporting. (#145)
- Fixed the error reporting for a changed or invalid SSL fingerprint key. It now correctly reports the underlying issue.
- Fixed the configuration panel width - an outer scroll pane confused the tab layout. The blank text fields shouldn't scroll offscreen anymore.
- Fixed the SSL Fingerprint text field to correctly show the value.
- Bug fixes.
- Bug fixes.
- Cleaned up debug logging.
- Changed the configuration UI to split the connection resolved properties from the connection properties definition. This should hopefully make the UI clearer and easier to read.
- Added workaround for an observed issue where the IDE would not load the workspace VCS configuration before the plugin was available (part of #143).
- The client name panel now correctly displays the client name saved in the
workspace.xml
file. - The configuration UI now prompts for a password when the client name panel needs a password to find the user's clients.
- Improved configuration problem reporting to differentiate between warnings and actual errors (part of #143 and #144).
- Fixed the connection status bar widget to push more activity out of the event thread and into the background.
- Fixed the reload buttons to be disabled while the process is running.
- Moved the client name field spinner to be consistent with the rest of the UI.
- Changed validation check for the server configuration and the client configuration so it now reports a warning rather than throwing an error (#144).
- Added validation check to ensure client name is not purely numeric.
- Added better logging in the case of connection checkout issues.
- Fixed configuration panel detection of modification.
- Fixed an issue where an invalid password would be considered needing to log in again with the existing, known password.
- Stream-lined the server connection process.
- Fixed an issue if the user has an authentication ticket file, but isn't logged in.
- Better prevention of incorrect error messages when the connection configuration changes.
- Bug fixes.
- Bug fixes.
- The relative config part of the configuration no longer hangs when the configuration is first loaded (#139).
- The property configuration did not correctly write its parameters to the
workspace.xml
file (#142). - The property configuration did not correctly report itself as not modified.
- The property configuration pane didn't let you choose the file by pressing the "..." button.
- Bug fixes.
- Bug fixes.
- Fixed issue around adding new files (#140).
- Bug fixes.
- Bug fixes.
- Fixed a parsing error on the client URL protocol (#138).
- Connection setup revamped.
- Added "reload configuration" actions to the VCS popup and connection widget.
- Bug fixes.
- Connection setup revamped.
- Entirely changed how the connections are configured through the IDE.
- This has ripple effects throughout the plugin. Hopefully, it will make the code more stable.
- This change allows for more complex configuration options. Specifically,
the
P4ENVIRO
support is handled better. Still no support for the per-server charset setting, though. (#94) - Compatibility with your previous settings should mostly be maintained. If you see an issue with your connection, try updating the connection settings.
- Hopefully, the default setup for turning on the Perforce VCS will now match your environment setup. The goal here is to have the base setup load the user configuration, just like running the "p4" command line tool.
- Added a "reload configuration" actions to the VCS popup menu, and to the status bar widget when no connections exist.
- Bug fixes.
- Delete does delete again! (#126)
- Changed the error reporting for SSL encryption library problem, when it comes from a TrustException. The error reported now includes information about the user's JRE for better user investigation of the SSL problem. (#133)
- Improved the error dialogs to reduce the situations where you can be bombarded with the same error message.
- Changed the error dialog system so that multiple instances of the Perforce dialog don't pop up at once.
- Many of the caches now clear their state when the project configuration is updated.
- Big change to better detect when the user's password is necessary.
- Bug fixes.
- Bug fixes.
- Fixed configuration connection issue. It should now recognize more situations where the password is needed. Additionally, the user shouldn't be quite as bombarded with error dialogs as before.
- Corrected the P4CONFIG parsing so that it correctly reads the file. It used to incorrectly parse a '' character as an escaping character. Now it is correctly read.
- Reduced the number of working-with-disposed-connections errors. (#134)
- Fixed an error with loading user preferences if the project is disposed.
- Build improvements.
- Bug fixes.
- Bug fixes.
- Removed an extraneous offline mode check which caused setting up the connection to report a "working offline" error. This ended up making the plugin unusable while in this mode. (#125)
- The plugin correctly refreshes its state at IDE startup. This prevented the connection widget from displaying its initial state, and the rare no client root error. (#130)
- Fixed the display of the server connection information so that it no longer has the really ugly prefix. (#116)
- Defend against a weird hiccup with finding servers. (#131)
- Fixed a long standing old issue regarding incorrect cached changes. The underlying cache wasn't being correctly cleared out. (#100) (#124)
- Fixed some cases of incorrectly forcing a workspace, which could cause a UI freeze if the server connection took too long.
- Fixed the IDE startup to better load the initial configuration, to prevent the occasional issue where you used to have to edit the setup before it took effect.
- Fixed a UI freeze that could happen when cleaning up a connection that runs against a slow server response.
- Fixed an instance of synchronizing causing a NoSuchElementException.
- Bug fixes.
- Bug fixes.
- Added a fix for a deadlock that would happen on occasion during startup (#128).
- Fixed an old bug related to deleting files (#126). It used to just open the file for edit. Now it correctly reverts the edit before trying to delete the file.
- Bug fixes.
- Bug fixes.
- Help prevent a FileNotFoundException during writing to a temp file (#114).
- Report a real error message when the user tries submitting a changelist that's not on the server.
- Fix a possible NPE while synchronizing a directory.
- Temporary fix for #124 in P4ChangeProvider - force the flushing of the local cache on changelist refresh.
- Removed deprecated references.
- Minor fix to changelist view details - if the server is offline and you're using multiple clients, then the offline status is correctly formatted.
- Reduced the number of possible critical errors while changing connection information during a background operation.
- Increased the performance of the determination of whether the "Edit" option should be visible under the P4 menu. This also changes its behavior so that it is always visible, even if the selected files are not under a Perforce client.
- Bug fixes.
- Bug fixes.
- Updated P4Java API to r15-2.
- Patch of r15-2 looks to fix a "file corrupted during transfer" error message. (#123)
- Set proper Perforce Application name and version on requests to the server. (#122)
- Fixed NoSuchElementException occurs when attempting to revert files. (#121)
- Fixed ConcurrentModificationException from local integrity checker. (#118)
- Fixed Null server value passed to P4ChangeListMapping.getPerforceChangelistFor. (#117)
- Fixed issue with session expired. The plugin now correctly asks for login.
- Bug fixes.
- Bug fixes.
- Fixed a possible deadlock with server connection checking.
- Fixed automatic add to VCS option fails on copy (#102)
- Fixed a rare concurrent modification exception (#106)
- Fixed one place where disposed projects are attempted to be used (#104)
- Fixed an issue where the plugin would not allow loading the list of clients unless you had a client set. (#115)
- Fixed an issue where the changelist name and description can be concatenated together (#91). Now, changelists will be updated to use the comment, and only use the name if no comment is given. This better matches the behavior of submit. If you want the old behavior back, there's a user preference to concatenate the two strings together, but note that this will not affect the behavior of the submit dialog - it will still only show the comment. This may have also fixed an issue where a second changelist would be created incorrectly.
- Fixed a configuration panel issue for the multi-p4config file setup did not show the config settings for a selected path.
- Additional user preferences for controlling the connection management.
- Changed the default p4java API connection implementation.
- Bug fixes.
- Additional user preferences for controlling the connection management.
- Add configurable "max retry authentication" parameter to control how many times to retry logging into the server after it reports an unauthorized connection. This can help those users who experience frequent issues around the server dropping the authentication token.
- Add configurable "Always reconnect for each request", which closes the server connection after each server group of commands.
- Changed the default p4java API connection implementation.
- The default p4java API connection implementation has switched from the
OneShotServerImpl
to theNtsServerImpl
, due to connection usage pattern changes that causes the old implementation to incorrectly handle authentication. To change back to the old connection, use the "java:" or "javassl" protocol prefix; so if your connection islocalhost:1666
and you want to go back to the old protocol, usejava://localhost:1666
. (#109)
- The default p4java API connection implementation has switched from the
- Bug fixes.
- Improved responses to the retry login failures to display a different dialog.
- Fixed the issue where files with a special character in the name (e.g.
@
and#
) can now be moved between changelists. (#103)
- Bug fixes.
- Bug fixes.
- More fixes for the authentication prompting problem. (#109) Includes re-introducing proper identification and handling of real password issues.
- Bug fixes.
- Bug fixes.
- Alleviated some of the issues surrounding the plugin constantly reporting that the password is invalid. (#109)
- Bug fixes.
- Bug fixes.
- Android Studio and other non-JRE 8 IDEs can fail to load the plugin. Now, all the class loading errors should be caught when loading the compatibility libraries. (#113 & #110)
- Bug fixes.
- Bug fixes.
- Android Studio and other non-JRE 8 IDEs can fail to load the plugin. Now, all the class loading errors should be caught when loading the compatibility libraries. (#113)
- Bug fixes.
- Bug fixes.
- Initial project VCS setup causes "OK" and "Apply" buttons to not react. (#111)
- Initial project loading in Android Studio 1.5.1 with a master password store causes the project to deadlock on startup. (#110 and #112)
- Further progress on fixing the false password authentication reporting issues (#109 and #108).
- Bug fixes.
- Bug fixes.
- Fixed an issue where the user may be told repeatedly that their password is wrong, even though it's correct. (#105, #107)
- Switched to using MD5 hash codes when comparing if a file is actually edited but not checked out.
- Added user preference to disable server-side file comparison when checking for edited but not checked out status.
- Added user preference for switching between showing revision numbers and changelist numbers.
- Bug fixes.
- Switched to using MD5 hash codes when comparing if a file is actually
edited but not checked out.
- Before, when a file was noted by IDEA as being edited, and the file was not open for edit, the plugin would call out to the server to verify that it was in fact not changed. This behavior has been altered to instead cache the server's HAVE version's MD5, and compares that instead against the local file.
- Added user preference to disable server-side file comparison when checking
for edited but not checked out status.
- This may be less necessary now that the MD5 comparison is in place, but for Perforce depots that have very large files, or where the IDE marks many things as edited, it could still be a major performance drag. This checkbox will turn that functionality off.
- Note that with this functionality off, you may see files incorrectly marked as "changed but not open for edit".
- Added user preference for switching between showing revision numbers and
changelist numbers.
- Changes which numbers are shown in annotations and history.
- Bug fixes.
- Fixed the build so that it will correctly check the primary plugin against all supported IDEA versions, rather than just the earliest.
- Should now always authenticate once the server reports that the user requires authentication. (#95) This should also fix the issue where the plugin can continuously ask for the password; this could happen if you use the configuration file without specifying an authentication ticket or a password.
- Fixed a deadlock associated with initial startup when asking the user for the master IDEA password.
- Fixed submit issue where only the error would be reported; now, all messages are reported to the user.
- Fixed ignored tick marks (') in messages.
- Fixed compilation errors against the latest IDEA version of the primary plugin. This may result in you needing to reload your Perforce configuration.
- Updated the project to enable better plugin debugging.
- Switched to JDK 1.8 for compiling in order to support IDEA 16.
- Allow for pushing the open-for-edit on keystroke to operate in a background thread (#99), as a User Preference option.
- Bug fixes.
- Switched to JDK 1.8 for compiling in order to support IDEA 16. Only future API changes in IDEA will be compiled with JDK 1.8, so that older IDE versions will continue to work. (#92)
- Allow for pushing the open-for-edit on keystroke to be pushed out to a background thread. Some users were encountering performance issues when opening a file for edit (#99), and this new option will allow for moving as much of that processing to away from the event thread. The option is in the User Preferences of the Perforce VCS panel, titled "Open for edit in background."
- Bug fixes.
- Trimmed whitespace on job IDs in the submit dialog (#96).
- Annotation set before / after popup now shows correct list of revisions.
- Removed the obsolete user preference for setting the maximum number of concurrent connections. This is now limited to one per workspace.
- Fixed an IllegalStateException that could occur when refreshing the changelist view, when the P4 changelist was submitted or deleted on the server.
- Bug fixes.
- Bug fixes.
- Changelist refresh now cleans out the cached data if the user is online and there are no pending updates to send to the server. This should prevent the "old data" syndrome that would sometimes creep in, and it should make the synchronize file action work as expected. (#87 and #90)
- "Silently go offline on disconnect" option causes the gone offline dialog to repeatedly show up on disconnect. (#83)
- Bug fixes.
- Bug fixes.
- Annotated lines would show the most recent revision to have the line, rather than when it first appeared. (#86)
- Changelist details display for an annotated line would use wrong changelist number from the file status. (#86)
- Clicking on the annotated line could generate a "changelist -1" error. (#86)
- Bug fixes.
- Bug fixes.
- P4ProjectConfigurable can save settings without reading config sources. (#82)
- On startup, workspaces do not load root paths if password stored in IDEA. (#81)
- Changing the Perforce workspace root and moving the project directory to the new location no longer reports a directory mismatch. (#84)
- Bug fixes.
- Bug fixes.
- In some circumstances, the error dialog was only closing when "Cancel" was selected.
- Some circumstances cause the user to not be prompted for the password. (#80)
- When the user selected to not store the password, it wouldn't be used.
- Added the underlying problem to the error report in the warnings panel.
- Major overhaul to the server connection logic.
- Multiple server connection status in status bar widget.
- Passwords are now stored with better security.
- P4IGNORE support.
- Version selection for synchronize with depot.
- Bug fixes.
- Major changes to the server connection logic. (#70)
- Allows for limited offline work. Edit, add, delete, and move operations are cached for replay after you reconnect to the server. Reverts only have limited support.
- Warnings are displayed in the messages docked view.
- Errors are now more consistently displayed and handled.
- Note that changes to the client workspace spec will cause cached updates to be lost (the plugin won't be able to figure out how the files now map to the server).
- Multiple server connection status in status bar widget. (#19)
- The online state can now be controlled per-server through the connection status widget.
- Passwords are now stored with better security.
- Uses the IntelliJ password storage, so you may be prompted for a master password now if you setup the IDE to use that.
- This eliminates the "persist password locally" setting.
- P4IGNORE support (#69)
- Support the
P4IGNORE
environment variable. The default filename is.p4ignore
- Only files that are not known by the server are ignored.
- Support the
- Version selection for synchronize with depot. (#41)
- When "Update Directory" or "Update File" is run from the P4 context menu, you are given the option to select which revision or changelist to sync to.
- Bug fixes.
- The configuration UI could make UI requests outside the AWT event dispatch thread.
- Finally identified the sources of the infinite changelist refresh issues and fixed it, so that new improvements to the changelist sorting code can be attempted.
- Internal communication of events are now handled in the correct message bus, which should lead to more consistent responses to going offline or changing configuration.
- Add trusted ticket file support (#4)
- Changelist sync can discover null Idea changelists (#64)
- Initial creation of file asks if it should be added to perforce, but it is not added (#66)
- Files loaded from the Perforce server are restricted to the user-defined
maximum file size (the
idea.max.vcs.loaded.size.kb
property). - Falsely reporting that JCE is not present (#72)
- First time project configuration does not detect UI values (#65)
- Copy/paste and cut/paste of files do not trigger P4 actions (#71)
- "Move changes" action from non-active changelist modification action moves back into original changelist (#68)
- History difference did not work on IDEA 15.0 due to an IDEA API change.
- Show changelist number in file history view (#76)
- Abort a submit if the checkin comment is empty. (#52)
- Bug fixes.
- Bug fixes.
- Fixed an infinite changelist refresh due to incorrect file mappings.
- Added user preference (not available through UI yet) that allows selecting whether a copy command means an integrate.
- Started work on adding in the rollback on history view.
- Bug fixes.
- Added user preference (not available through UI yet) that allows selecting whether a copy
command means an integrate.
- UI will be available by v0.7.
- Bug fixes.
- Move operations could not find the Perforce version of the locally moved file (#62). This also affected the copy operation.
- Rewrote how the IDEA changelists sync up with the Perforce changelists. It should now be more accurate and eliminate some of the null mappings that occurred before.
- Added new 'P4HOST' setting.
- Bug fixes.
- Added new 'P4HOST' setting (#61).
- It overrides the JVM discovery of the client hostname.
- It will be read from the environment settings, and from the P4CONFIG file (it cannot be altered if you use the "Client Password" or "Authorization Ticket" connection methods).
- Bug fixes.
- If the JVM reports the hostname as including the full domain name, then it will be stripped down to just the hostname (#61).
- Fixed an IDEA 15 API incompatibility issue with file refreshing.
The
VcsFileUtil.refreshFiles(Project, Collection<VirtualFile>)
is no longer in the API.
- Bug fixes.
- Bug fixes.
- Configuration tabs need scroll pane (#59)
- Changelists can show a single file in multiple changelists (#58)
- Removed a stack overflow error with the server fingerprint.
- Switched requests for services to requests for components.
- Switched to open source P4Java library.
- Uses SSL fingerprint when connecting to SSL server (#56).
- Identified when a connection fails due to an SSL server fingerprint mismatch (#56).
- Bug fixes.
- Switched to open source P4Java library.
- Uses SSL fingerprint when connecting to SSL server (#56).
- Authorization ticket and password entry connection methods can specify
the trusted SSL fingerprint for the server. Config file connection
methods will use the
P4TRUST
setting, or the default p4 trust file. you will need to trust the server using thep4 trust
command line in order to manage theP4TRUST
file's contents.
- Authorization ticket and password entry connection methods can specify
the trusted SSL fingerprint for the server. Config file connection
methods will use the
- Identified when a connection fails due to an SSL server fingerprint mismatch.
- Problems due to a trust issue with the server are now clearly identified.
- Bug fixes.
- On connection check using a relative config file, you will no longer see the "connection is fine" message after seeing errors with the connection (#57).
- Bug fixes.
- Bug fixes.
- If the user's P4CONFIG environment variable or windows registry setting is set, it can still be loaded, even if the user doesn't want to use those settings. This isn't a problem unless a relative path is used, in which case a strange "FileNotFoundException" will be generated.
- The default changelist will show up as the synthetic text font (by default, blue), rather than looking like the active changelist color. This avoids confusion if the active changelist is not the default changelist.
- Relative configs could still report problems on the "check config" button.
- Add user preferences.
- Begin SSL support. Requires installing the unlimited strength JCE package for the IDE's JRE in order to use.
- Many bug fixes.
- Add user preferences (#39)
- User preferences are available on the Perforce configuration panel, in a new tab. The current options are for setting the maximum number of open connections to each server, and the maximum timeout for waiting on those connections.
- Begin SSL support.
- Standard Java does not support the 256-bit encryption level ciphers required by the Perforce server. You must download and install the unlimited strength JCE package for the IDE's JRE in order to connect to an SSL-enabled Perforce server.
- Added support for specifying the Perforce server SSL fingerprint.
- Start of trust support for server connections. Still needs correct wiring to allow the user to be notified of fingerprint changes, and for correct authenticating of the fingerprints. It will reuse the SSL trust ticket if the user has already authenticated (with "p4 trust") the connection.
- Bug fixes.
- Client selection drop-down is disabled (#53)
- NPE in Authorization Ticket connection when selecting the file chooser (#54)
- Bad display of P4PORT text field tooltip.
- Fixed error if the client is disconnected while refreshing the changelist view.
- Fixed error when choosing "Specific P4CONFIG file" related to incorrect widget initialization.
- De-register VCS module on project close (#55)
- Allow selecting the revision or changelist to sync to.
- Synchronizing on a checked-out file does not report future merge problem.
- Bug fixes.
- Code cleanup.
- Allow selecting the revision or changelist to sync to (#29).
- Now the menu option "Update files..." brings up a dialog that allows the
user to select which revision to sync to (head, revision
#
value, changelist etc.@
value), as well as whether to force the sync.
- Now the menu option "Update files..." brings up a dialog that allows the
user to select which revision to sync to (head, revision
- Synchronizing on a checked-out file does not report future merge problem (#30).
- If a synchronize will cause a future merge issue, you will now see an error reported with the details. The sync will still happen.
- Bug fixes.
- Add/Edit without adding to Perforce incorrectly then adds the file to Perforce (#6).
- Changelists show files that are unchanged as locally modified without checkout (#49).
- Fixed NPE that can happen if synchronizing files causes a merge issue.
- Code cleanup.
- Reduced logging.
- Full file history support (#47).
- Bug fixes.
- Full file history support (#47).
- File history used to not show branching history if it went outside the current client. Now, it will show a full history of the file, and allow for diffing against any part of the depot in which the user has read access.
- Bug fixes.
- Fixed error when handling deletion of files not owned by Perforce.
- Fixed a lag issue related to saving files when working offline.
- Minor code cleanups.
- Bug fixes.
- Bug fixes.
- Changelists refresh event may be incorrectly skipped (#45) This fix keeps the timeout, but changes it to a cache expiration concept. IntelliJ can call the changelist refresh multiple times very quickly, so this addition will maintain a short-lived cache that will be reused as long as IntelliJ indicates that no IDE-managed files need updates. When the cache expires (currently set at 10 seconds), the server will be queried at the next refresh time.
- Added "Update files" to file context menu to allow easy synchronization with depot.
- Added "Revert unchanged files" to file context menu and changelist context menu.
- Bug fixes.
- Added "Update files" to file context menu to allow easy synchronization with depot.
- Right click on the Project view file or directory, select the P4 sub-menu, and the Update files... option will synchronize to the head revision.
- Added "Revert unchanged files" to file context menu and changelist context menu.
- Right click on a changelist in the Version Control view, and select "Revert unchanged". All files in the changelist, for all clients, will be reverted if they have not been altered from the depot version.
- Right click on selected files in the project view, and select "Revert unchanged". All files in the changelist, for all clients, will be reverted if they have not been altered from the depot version.
- Bug fixes.
- Improved support for rollback of files that aren't explicitly checked out by Perforce.
- Add missing tooltips on UI elements (#43)
- Reduced the number of server calls.
- Bug fixes.
- Reduced the number of server calls. (#38)
- Cached the files open for edit on Perforce. This list is reloaded on "version control" panel refresh, and when the files are considered out of sync.
- Cached the jobs loaded from the server.
- Added a monitor to track the number of actual server calls.
- Capped the number of simultaneous connections to the same server/workspace (2).
- Capped the frequency at which changelists will be refreshed (once every two seconds). This is due to editing files triggering a changelist refresh, which can become quite noisy.
- Bug fixes.
- Reduced the amount of log messages.
- Eliminated NPE related to changelist caching.
- Internationalized the exception messages.
- Bug fixes
- Internationalized the exception messages. Exceptions can be reported to the user, and so they need I18N support.
- Bug fixes
- Not finding P4CONFIG in the hierarchy (#32)
- Partial fix for incorrect parsing of P4Java API issue with fetching jobs (#33). This appears to be a server error during the returning of the job. An error is still reported to the user, but it is friendlier, and better details are logged.
- Config "resolved values" should better reflect if it has been loaded (#34)
- Reports of invalid configuration now better describe the source of the issue.
- "Add file" while disconnected causes NPE (#35)
- Added support for IntelliJ on JDK 1.6
- Added job support to check-ins.
- Bug fixes
- Added support for IntelliJ on JDK 1.6. (#28)
- Compiled under JDK 1.6, and removed JDK 1.7-specific API calls.
- Added job support to check-ins. (#25 & #26)
- Experimental: the list of acceptable job status values are pulled from the server. If these are inaccessible, then the default list is shown.
- Bug fixes
- Adding files (Ctrl+Alt+A) would sometimes call an unimplemented function.
- Multiple clients per project would label a file as being under the wrong client.
- Deleted files would not be submitted.
- Annotated file can encounter null depot file path, which causes an error.
- File history can cause an error when one file in the path was removed.
- Submitting a changelist which causes an error incorrectly reports the submit as successful. (#31)
- Files would move incorrectly from the correct changelist into the default changelist. (#22)
- Move file across clients should use integrate when clients share a server (#15)
- Revert a moved file does not refresh status (#7)
- Added basic synchronization with server.
- Added connection properties display to VCS configuration panel.
- Minor bug fixes
- Added basic synchronization with server.
- Only available through the VCS menu, not through the context menu.
- Does not handle merging. Any potential issues with existing checked-out files being synched are not reported.
- Added connection properties display to VCS configuration panel.
- Allows for the user to view the connection properties that will actually be used to connect to Perforce.
- For relative configurations, you can select the child path (and see which child paths are detected to contain config files) to see its specific configuration properties.
- Password is not displayed, but it indicates whether it is explicitly set or not.
- Minor bug fixes.
- Files in changelists are not always reported correctly. This was due to incorrect caching that came from an earlier refactoring effort.
- Files moved between changelists seems to be fixed (#22).
- Typo in the plugin description.
- Code cleanup.
- Minor bug fixes.
- Fixed the change list view refresh.
- Enabled submit.
- Submit enabled. Very early version of submit is now possible. It does not allow for setting job status or adding jobs to the submitted changelist.
- Fixed the change list view refresh. The magic invocation to have the "Version Control"
panel properly refresh was discovered.
- Should fix bugs #8, #9, #14
- Minor bug fixes.
- A
P4PORT=1666
format would fail parsing, because the P4 Java API only supportshostname:port
orschema://hostname:port
formats. As a fix,localhost
is prefixed for any P4PORT setting that does not have a colon in the actual port part. - Under some circumstances, having 2 or more clients in the same project could
lead to a
NullPointerException
while mapping Perforce change lists to IDEA change lists.
- A
- Minor bug fix with changelist association with the default changelist.
- Major refactoring to the management of changelists.
- Bug fixes.
- Major refactoring to the management of changelists.
- Perforce Changelists are now cached application-wide. This allows for code clean-up that should hopefully make some of the file migration between changelists less common (#22).
- Bug fixes.
- non-numeric perforce server port (#23)
- Background threads were causing refresh problems. Turned them off to limit the number of issues they caused.
- Add support for IDEA 141.2.2
- Add in support for all versions between 13.5 and 14.1
- Minor UI bug fixes.
- Fix for default settings panel
- Minor UI bug fixes. * Returning online can cause error "user selected work offline" (#20).
- Fix for default settings panel * If you edit the default settings for the Perforce plugin (File -> Other Settings -> Default Settings), the panel will throw an exception (#21).
- Add support for IDEA 13.5 (e.g. Android Studio).
- Minor UI bug fixes.
- Improvements to Perforce server communication performance.
- Add support for IDEA 13.5 (e.g. Android Studio):
- Major refactoring to allow for multiple versions of IDEA. This was tested against Android Studio version 1.0.1. (#16)
- UI bug fixes:
- Changelist decorator can show the same client name multiple times.
- Incompatible versions need to have better UI notification (#18).
- Deadlock issue on disconnect (#17)
- Relative P4CONFIG Connection setting does not always disable the client button (#11)
- Connection status widget does not show current status correctly (#3)
- Perforce server communication performance:
- Corrected connection flag that forced several API hacks (#12).
Initial public release