GoLand 2020.3 Help

Local History

Local History helps you constantly track all changes made to a project independently of version control.

Unlike version control systems, which only keep track of the differences made between commits, Local History offers much more. It automatically records your project's state as you edit code, run tests, deploy applications, and so on, and maintains revisions for all meaningful changes made both from the IDE and externally.

Acting as your personal version control system, Local History lets you restore deleted files, bring back separate changes, or roll back to any state of a file even if no version control is enabled for your project yet, or if an unwanted change was made after your last commit. It may also serve as a recovery source if your computer restarts unexpectedly before you can take any action.

Restore changes

Let's imagine you made a series of changes to a file since your last commit before your realized you've deleted a meaningful chunk of code. The Undo action can't help you here because that change is too far away and you'll be forced to discard other changes if you use it.

With GoLand you can restore that change in a couple of clicks.

  1. Right-click anywhere in the editor and choose Local History | Show History from the context menu.

    A dialog opens showing a list of all saved revisions of the current file with a timestamp on the left, and a diff viewer on the right which displays the differences between each revision and the current state of the file.

  2. Do one of the following:

    • To revert the whole file or directory to the state of this revision, right-click it and choose Revert from the context menu or click the Revert icon on the toolbar.

    • To restore a specific code fragment, select the revision that contains that fragment. In the diff view on the right locate the piece of code you want to restore click the chevron button the Chevron button to copy it from the left pane.

      Restore code fragment from Local History

Restore deleted files

If you've accidentally deleted a file that was not under version control, you can restore it with Local History.

  1. Select the folder that contained the file you deleted in the Project view, right-click it and choose Local History | Show History from the context menu.

  2. On the left, select the revision that contains the file you want to restore, right-click that file, and choose Revert Selection.

    Restore file from Local History

Add labels to specific states Local History

Local History revisions are normally marked with timestamps, which are not easy to navigate. Some revisions are automatically marked with labels based on predefined events: running tests, deploying apps, committing changes, and so on. You can always add a new label to mark the current state of the Local History, for example right before you start a massive refactoring.

  1. Select File | Local History | Put Label from the main menu.

  2. In the dialog that opens, type any meaningful name for the label and click OK.

Share Local History

Local History does not support shared access, it is stored locally and intended only for personal use. However, you can create a patch file with changes relative to a specific revision, which you can share with others.

  1. Select a revision in Local History dialog and click Create Patch create patch on the toolbar.

  2. In the dialog that opens, specify how you want to create the new patch.

Change Local History retention period

By default, Local History is configured to store revisions for the last 5 working days (that is, days when the file was modified).

  1. Press Ctrl+Shift+A or choose Help | Find Action from the main menu, and type Registry.

  2. In the Registry editor, locate the localHistory.daysToKeep key and change its value.

  3. Click Close and restart GoLand for the changes to take effect.

Alternatively, you can pass the localHistory.daysToKeep parameter as a Java property by configuring JVM options. For example, to set retention to 30 days, add the following line to the JVM options file:

-DlocalHistory.daysToKeep=30

Location of Local History files

Local History is stored as binary files under the LocalHistory subdirectory in the GoLand system directory.

You can change the location of the system directory using the idea.system.path property.

Last modified: 03 November 2020