Add-onsGit Client

Syncro Soft
Version: 5.4.0
Oxygen Version: 26.1+
End User License Agreement

This add-on installs a Git Client in Oxygen. It contributes multiple side-views, each one specialized for various Git operations. The main one is called the Git Staging view. Using the Git Client add-on, various Git operations can be performed, such as committing changes into the local repository, pushing/pulling changes to/from the remote repository, creating, checking out and deleting branches, showing the history of the repository resources, and more. The add-on also includes a built-in tool for comparing and merging changes.

What's new in version 5.4.0

  1. A new button was added above the commit message area to generate commit messages using the AI Positron Assistant.
  2. It is now possible to sign commits using GPG keys.
  3. If there are unpulled changes detected when creating a new branch, a confirmation dialog box is displayed where you can choose whether or not to pull the changes before processing the branch creation.
  4. If you attempt to merge a branch into the current one and unpulled changes are detected on the branch being merged, a warning message will appear. This allows you to bring that branch up-to-date first (by performing a pull) and then the merge is automatically retried.
  5. Local branches that are linked to remote branches that no longer exist are now detected and reported.
  6. You can now pull changes from a remote branch other than the one being tracked.
  7. When trying to commit while having unsaved changes in the local repository files you are currently editing, a warning message is presented.
  8. When performing tasks such as switching or merging branches, restarting a merge, and many others, the progress of the operation is now shown when it takes more than two seconds to complete.
  9. When comparing two revisions or opening the compare editor to resolve merge or rebase conflicts, the comparison tool now provides more detailed information about the commits involved.
  10. When the "index.lock" file exists in the local repository, the operations that cannot be performed because of it now show error messages containing explanations and instructions.
  11. The JGit component was updated to version 7.0.0.
  12. Updated the minimum required version of Oxygen to 26.1.
  13. Fixed some bugs.

What's new in version 5.3.0

  1. Oxygen project detection has been improved when opening a new repository in the Staging view.
  2. Submodules in parent repositories are now checked out at the index defined in the parent repository when checking out a branch. This ensures that the submodules reflect the actual state of the parent repository at that time.

What's new in version 5.2.0

  1. Large File Support (LFS) is now supported. This means that if you have installed LFS and defined the tracked large files in your repository, they will be automatically detected and handled properly.
  2. Improved various messages in the user interface.
  3. Improved repository cloning process to automatically detect and load *.xpr files.
  4. The absolute path to the working copy is now displayed in the tooltip of the Git Staging view's working copy combo.
  5. Enhanced remote change detection and refresh in History view for improved performance.
  6. An issue has been fixed where untracked files were not being restored from a stash.
  7. The integrated JGit library was upgraded to version 6.5.
  8. Other bug fixes.

What's new in version 5.1.1

  1. Corrected a message that created confusion in the Merge branches dialog box.
  2. Fixed an issue where Oxygen failed to start when there was no project open in the Project view.
  3. Implemented other bug fixes.

What's new in version 5.1.0

  1. A new options page was added for SHH Connections to control SSH agent usage.
  2. Fixed an issue in which SSH agent was not used by default.
  3. The commit dot in the Git History graph associated with the head of the current branch is now painted differently to make it easier to see.
  4. The Oxygen project change detection mechanism was improved. It is now faster and the Git Staging view no longer needs to be displayed.
  5. The presentation of the labels associated with a commit in the Git History view has been improved to avoid truncation of names when it is not necessary.
  6. The "List stashes" dialog box now allows you to resize the tables for "Stashes" and "Affected files" without resizing the entire dialog box.
  7. The "Open" action from the contextual menu in the Git Staging view now uses the URL of the current local working copy as much as possible.
  8. A problem was solved where after the discard action on an untracked/added file was still presented in the Git Staging view even though it was deleted on disk.
  9. Implemented various bug fixes and performance improvements.

What's new in version 5.0.0

  1. A new Validate each file before committing option was added in the Git Client preferences page. Selecting this option enables automatic validation of each file before each commit.
  2. A new Validate all files from the project's "Main Files" folder before pushing option was added in the Git Client preferences page. Selecting this option enables automatic validation of the files located in the Main Files folder before the push operation processes.
  3. The integrated JGit library was upgraded to version 6.3, which brings support for ssh-agent forwarding.
  4. An option has been added that automatically detects Oxygen projects from opened working copies to quickly open them in the Project View.
  5. Added a Squash merge "SELECTED_BRANCH" into "CURRENT_BRANCH" action in the contextual menu for local branches in the Git Branch Manager. This will add all changes from the "SELECTED_BRANCH" to the "CURRENT_BRANCH" in a single new commit.
  6. By default, the History view presents commits from all branches (both remote and local).
  7. Tags can be deleted even if they have already been pushed to the remote repository.
  8. If the local branch has not been published yet, the push button will be decorated with a + symbol and will have a tooltip to explain the context.
  9. A more helpful message is displayed when pulling and the local branch doesn't track a remote.
  10. In tree view mode, if there are no changes, the empty folder with the name of the repository will no longer be displayed.
  11. The Git Staging view now has a busy cursor when an operation is in progress.
  12. Fixed an issue when authentication tokens were lost from options.
  13. Some dialogues have been improved to make them easier to understand.
  14. Bug fixes and performance improvements.

What's new in version 4.0.2

  1. Fixed an issue that made the Pull(rebase) action from the Git Staging view be disabled at all times.

What's new in version 4.0.1

  1. Fixed a small problem where the UI would sometimes freeze when returning to Oxygen after going to another application.
  2. Fixed an exception that appeared under certain conditions and made the Git support unusable.

What's new in version 4.0.0

  1. The History view now includes a new revision graph that helps you to understand how commits connect with one another.
  2. You now have the ability to manage remote repositories (add, edit or delete), track a remote branch for the current branch, or to edit the repository's configuration file.
  3. A new Git menu that contains various Git actions was added in the main menu bar.
  4. In the History view you can choose which branches will have the history shown. You have the following options: Current branch, Current local branch, All branches, All local branches.
  5. A new Checkout action was added in the History view contextual menu to checkout a branch at a specific commit (either in detached head form or by creating a new branch at that commit).
  6. A combo box was added in the Git staging view to switch between local branches.
  7. The Git Staging view toolbar was simplified to only include the most important actions (while all actions are available in a new three vertical dots menu).
  8. Performance was improved by optimizing the process of checking the status of the repository.
  9. The Stash dialog box now has a column that shows the creation time for each stash.
  10. Fixed an issue where the index got reset after pulling changes from the remote.

What's new in version 3.0.0

  1. You can save the uncommitted changes into stashes, reapply or delete the stashed changes.
  2. You can create new tags from the Git History contextual menu. In the Git Staging toolbar, there is an action to list all the tags. Tags from the local repository can be deleted or pushed to the remote repository.
  3. Added a Merge "SELECTED_BRANCH" into "CURRENT_BRANCH" action in the contextual menu for local branches in Git Branch Manager .
  4. When showing the history for a directory in the affected files section, the files that are descendants of the directory are presented on top and the files that are outside it are grayed out.
  5. Added a Revert commit action in the contextual menu for commits from the Git History view. It creates a new commit that reverts all the changes from the selected commit.
  6. Added a Reset file to this commit action to the contextual menu for resources associated to a revision in the Git History view. It checks out the selected version of the file.
  7. Added an Open working copy version action to the contextual menu for resources associated to a revision in the Git History view.
  8. A warning message is now displayed when trying to use the Mark as resolved action on a file that contains conflict markers.
  9. A message prompt is now displayed if you try to switch the branch while there are uncommitted changes so that you can confirm that you want to stash the changes or move the changes to the new branch.
  10. A new editor variables is now supported: ${git(working_copy_url)} . It is resolved to the URL of the current working copy directory.
  11. When hovering the cursor over the Pull and Push buttons, the displayed tooltip now shows information about some of the incoming/outgoing commits (such as the date, author and message).
  12. When hovering the cursor over a branch name, a tooltip is displayed that provides information about the last commit performed on that branch (such as the author and the date of the commit).
  13. An information message that is shown when starting Oxygen while being on a detached HEAD now presents more information about the checked out commit (ID, author, date, message).
  14. The add-on's minimum compatible Oxygen version was increased to version 22.1.
  15. The highlight boxes that surround branches and tags are now styled differently so that it is easier to identify which represents a branch and which represents is a tag.
  16. The settings in the Git client preferences page can be saved at project level. The project can then be shared with other users and everyone will have the same Git client settings.
  17. Fixed an issue in where the commit details were not correctly displayed when a filter text was active in the History view.

What's new in version 2.5.2

  1. The JGit component included in the Git Client was updated to version 5.12.0. This fixes the ssh without passphrase authentication which was broken in the previous 2.5.1 release.

What's new in version 2.5.1

  1. Fixed a configuration problem caused by the selection of a branch to checkout when cloning a repository. Because of this, remote changes could not be detected.
  2. The JGit component included in the Git Client was updated to version 5.11.0.

What's new in version 2.5.0

  1. Added a new field in the login dialog box for authentication using a personal access token. Note that from August 13, 2021, GitHub will no longer accept password-based authentication ( https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations ).
  2. After a repository that contains submodules is cloned, all submodules are also automatically initialized and cloned.
  3. When pulling the remote changes for a repository that contains submodules, the submodules are updated as well (by default). This behavior depends on the Update all submodules after pulling changes from the remote repository option from the Git Client preferences page in Oxygen.
  4. If a submodule appears as changed in the Unstaged files area, you can open it using the Open action from the contextual menu.
  5. The tooltip shown for a modified submodule from the Ustanged files area now presents information about the currently and previously tracked commits.
  6. Branches created from other local branches are now automatically checked out. This behavior can be disabled by deselecting the Checkout branch option in the Create branch dialog box.
  7. The Git Staging side-view has been slightly redesigned and now has a cleaner look.
  8. Added support for Dutch localization.
  9. Fixed an issue where debugging the Git Client using Apache Log4j did not work.
  10. Fixed an issue where opening submodules that required authentication was not possible.
  11. Fixed various other bugs and added several small UX improvements.

What's new in version 2.4.0

  1. Added an "Abort merge" button for when conflicts result after a Pull (merge) operation. It allows you to abort the current conflict resolution process.
  2. Added a set of options in the Git Client preferences page that can be used to decide whether to always switch to a newly detected working copy from a project, to never switch, or to always ask.
  3. Added a "Preferences" action in the Settings menu that acts as a shortcut to the Git Client preferences page.
  4. Fixed an issue where pushing to a remote branch did not work when local and upstream branch had diffenrent names.
  5. Integrated numerous other bug fixes, UI improvements, and speed improvements.
  6. The JGit component included in the Git Client was updated to version 5.10.0.

What's new in version 2.3.1

  1. Fixed some performance problems introduced by version 2.3.0.
  2. Fixed an issue where branches removed from the remote repository were still presented in the Git Branch Manager view even after refreshing it.

What's new in version 2.3.0

  1. The Git Client now contributes a new side-view, called the Git Branch Manager , which presents all the local and remote branches as a tree. Actions were added to the tree's contextual menu to make it very easy to check out branches, and to create or delete branches.
  2. You can now easily switch between local branches using a drop-down menu in the top-right corner of the Git Staging view or by using the Git Branch Manager.
  3. A new action ( Reset "[branch_name]" to this commit ) was added in the history table that can be used to undo changes by moving the HEAD of the current branch to the selected commit.
  4. Some editor variables are now supported, including:
    • ${git(working_copy_name)}
    • ${git(working_copy_path)}
    • ${git(short_branch_name)}
    • ${git(full_branch_name)}
  5. The Git History view now has better automatic refresh support.
  6. A confirmation dialog box has been added for instances when you try to commit without a message.
  7. The add-on now contributes a preferences page (Options / Preferences / Plugins / Git Client) that contains a "Notify me about new commits in the remote repository" option. When this option is selected, Oxygen will show notification messages when it detects that new commits have been pushed to the remote repository.
  8. Support for French localization was added.
  9. The JGit component included in the Git Client was updated to version 5.9.0.
  10. Various other minor improvements and bug fixes were implemented.

For more information about the add-on's features, see the README document .

What's new in version 2.2.0

  1. Added the possibility to amend the last commit.
  2. Added the possibility to automatically push changes to the remote repository when committing.
  3. Added the possibility to create a new branch starting from the selected commit in the History table, by using the "Create branch" contextual action.
  4. Added the possibility to compare two revisions of the same file from the Git History view, by using the "Compare with each other" action in the contextual menu of the history table.
  5. Added the possibility to reset the stored credentials, by using the "Reset credentials" action in the Settings menu from the main toolbar.
  6. If you have a local branch that is not tracking a remote branch, the push button tooltip suggests that you push to create a remote branch with the same name as the local one.
  7. Incoming and outgoing commits are marked in the history table with corresponding arrow characters.
  8. Improved local repository detection when selecting a project.
  9. Updated JGit to version 5.7.0 (which, among other things, fixes client-side hooks execution).
  10. Fixed a bug where failing commits did not show any messages to the user.
  11. Fixed other small bugs.

For more information about the add-on's features, see the README document .

What's new in version 2.1.1

  1. Fixed a bug where the Text/Author page contextual menu was not shown when the opened document was remote (e.g. from a WebDAV server).

What's new in version 2.1.0

  1. Updated the JGit library to version 5.6.
  2. Added a "Clear history" action in the working copies combo box.
  3. Added the "Show history" and "Show blame" actions to the contextual menus of the resources from the Project view and of the Text and Author editor pages.
  4. Implemented renaming detection in the Git History view. Renamed resources are presented using a suggestive icon (containing the "R" letter). All the actions from the Git History view take into account the entire history of a resource, including renames and path changes.
  5. Numerous bug fixes and small improvements.

What's new in version 2.0.0

  1. Added a new Git History side-view, available from the toolbar for the entire repository, or from the contextual menu for each unstaged resource.
  2. Added a Show blame action in the contextual menu of unstaged resources. This action works in conjunction with the Git History side-view, where the revision highlighted in the main editor is selected for presenting more details.
  3. Added a Pull (rebase) action in the toolbar.
  4. Added more 2X icons for high resolution screens.
  5. Fixed UI freeze issues when working with large repositories.
  6. Fixed some UI glitches such as unintended borders, lack of padding, crowded components, etc.
  7. Improved speed when performing various operations, such as committing or changing the repository.
  8. Other small bug fixes.

What's new in version 1.5.2

  1. Updated to JGit version 5.4.2 which comes with various bug fixes: https://projects.eclipse.org/projects/technology.jgit/releases/5.4.2/review
  2. Fixed issue: Oxygen freezes on start-up.
  3. Fixed issue: Opening a Git repository fails with a java.lang.NullPointerException.

What's new in version 1.5.1

  1. Updated to JGit 5.4.0.
  2. Fixed issue: switching between flat mode and tree mode didn't always work.
  3. Fixed issue: authentication through SSH using a passphase was broken in the previous build.
  4. Other bug fixes

What's new in version 1.5.0

  1. Updated to JGit 5.3.1.
  2. The add-on now works with more kinds of SSH keys, by using JGit's new SSH session factory based on 'Apache MINA sshd' by default. See https://wiki.eclipse.org/JGit/New_and_Noteworthy/5.2 for a full list of benefits.
  3. The tooltips of the push/pull buttons and the branch label now also present the remote repository.
  4. Bug fixes
  5. Speed improvements

What's new in version 1.4.0

  1. Update to JGit 5.2.1.
  2. Performance improvements when checking the status of the repository.
  3. Fixed bug that led to file loss when changing the letter case in a file name.
  4. Better error message when the working copy is locked.
  5. When closing, Oxygen will wait for Git commands to complete to avoid possible side effects such as leaving the worky copy locked.

What's new in version 1.3.2

  1. Initalize and update submodules if needed when the user opens a submodule.

What's new in version 1.3.1

  1. Present an error message when Pull fails because local changes would be overwritten by merge.

What's new in version 1.2.11

  1. Various performance optimizations, bug fixes and the ability to check out a specific branch when cloning a repository.

What's new in version 1.2.10

  1. Speed improvement when invoking the contextual menu the Project view.

What's new in version 1.2.9

  1. Fixed various issues encountered while working with resources in the tree view.

What's new in version 1.2.6

  1. Bug fix: The contextual menu didn't show when running Oxygen on Mac OS X (broken in version 1.2.5)
  2. Improved the calculation of pull behind and push ahead counters

What's new in version 1.2.5

  1. Bug fixes
  2. Performance improvements

Using the plugin

Note: After installing the plugin, if the Git Staging view is not visible, you can open it from the Window / Show View menu.

For information about how to use the Git Client, please see the README document on GitHub: https://github.com/oxygenxml/oxygen-git-plugin/blob/master/README.md .