Introduction
At its core, OverrideAudit helps automate the actions you would normally take to allow
you to keep track of and work with your overrides more
easily. Although what it can do is easy to understand, you may find yourself wondering
how or why you would actually use it in the real world.
This page outlines some of the tasks that you might carry out with OverrideAudit and
what your workflow might be while performing those tasks.
Using OverrideAudit
OverrideAudit strives to integrate with your normal Sublime workflow as much as
possible, unobtrusively sitting in the background waiting for you to call on its
services. In order to stay out of the way, many of the commands and tasks available
are context sensitive in nature, appearing only in the situations where they are
needed.
Commands for creating Reports are always available from
within the Command Palette or the Main Menu. Additional commands become available in
the Command Palette as well as the context menu of views that pertain to overrides
(reports, while editing an override, etc) as needed.
In most places, the context menu is specific not only to the editor pane you are using,
but also to the location within the pane that you open the menu. For example, package
names in Reports have a different set of context sensitive items than the names of
overrides do.
Reports
Most of the ways into the OverrideAudit workflow are by first generating a report of
some kind in order to gather information about how best to proceed. In most cases that
will be an automatically generated report that informs you of potential problems.
Reports tell you things such as what packages you have
installed as well as the overrides that exist inside of them. From these reports, you
can use the available context sensitive commands to get at the information you need to
keep Sublime running in tip top shape.
Automatic Reports
For most users, working with overrides starts with an automatically generated
Override Report, which may happen after an
update to Sublime or one of the packages you have installed. In these cases,
OverrideAudit may detect that one or more of your overrides
has expired and may require attention.
This report allows you to get a quick overview of all of the overrides you currently have
and which ones may require your attention to ensure that you don't miss out on anything
important.
Manual Reports
OverrideAudit can also generate various Reports on demand,
including the expired override report that it automatically generates when needed. These
reports can be created either in response to an automatic report to help diagnose
potential problems as well as to gain insight into your overrides at any time.
Overrides
Although the various reports help you to see what overrides you have and their state,
their main focus is in helping you to work with your overrides in general. The reports
help you focus in on the overrides that may need your attention the most.
OverrideAudit adds extra context sensitive functionality to open override files,
allowing you to see how they're different from the files they are overriding, update
them when they need changes, and even to remove them when you're done with them.
Finding Overrides
Before you can start working with your overrides, you need to know that they exist in
the first place. The easiest way to do that is via an
Override Report. This report will show you
what overrides exist in each package (if any), as well as providing an indication as to
whether that override is expired or not.
Another option is the Bulk Diff Report, which
contains the same information as the Override Report and also includes a unified diff
for each override so that you can immediately see how each override is different from
it's underlying file. This report can be generated either for all packages all at once
or for just a single package, depending on your needs.
Editing Overrides
When working with OverrideAudit, you may determine that you would like to make changes
to an override that already exists. From any report which is showing you the name of
an override, you can open the context menu over an override and select the
OverrideAudit: Edit Override
command to automatically open the override
for editing.
If you have a diff view open for an override, you can open the context menu anywhere
within the file contents or it's editor tab and select the OverrideAudit: Edit this Override
command, select the OverrideAudit: Swap Diff/Edit View
command from the
Command Palette or use the Alt+O or Cmd+Alt+Up keyboard shortcut to
immediately swap to an edit view for that override.
It is also possible to open an override manually using the standard Sublime file
operations or via another package such as
PackageResourceViewer.
Regardless of how you open an override, OverrideAudit will detect that it is an
override and seamlessly integrate with it.
Diffing Overrides
Once you know you have an override, you often need to know exactly how your override is
different from the underlying file that it is overriding. For this purpose, OverrideAudit
provides the ability to calculate and display a diff of an override, allowing you to
easily see how things are different.
There are a variety of ways to generate a diff for an existing override, allowing you to
quickly get at the information you need with a minimum of effort.
-
Selecting OverideAudit: Diff Single Override
from the Command Palette
or Tools > OverrideAudit > Diff Single Override
from the menu
will prompt you for an override and then show you a diff of it.
This command automatically filters the list of packages and the contents of the
selected package so that you only see relevant information.
-
From within any report which is showing you the name of an override, you can open
the context menu over an override and select the OverrideAudit: Diff Override
command to open a diff for that override.
-
While you are editing an override you can open the context menu anywhere within
the file or it's editor tab and select the OverrideAudit: Diff this Override
command to immediately open a diff.
This operation is also available as OverrideAudit: Swap Diff/Edit View
in the Command Palette or using the Alt+O or Cmd+Alt_Up
keyboard shortcut.
Note:
For more extensive override changes, or when you have a preference to view a diff in
a favorite tool, OverrideAudit can be configured to use that tool via the
external_diff setting. This enables the
OverrideAudit: Open Diff Externally
command in the context menu
and command palette while you are viewing a diff.
Note:
The mini_diff_underlying setting can be used
to have OverrideAudit set up the Sublime Text
incremental diff
functionality to show file differences based on the unpacked version of the file.
With this option enabled (it is turned on by default), while editing overrides you
can use the native Sublime Text diff navigation and display to see exactly how your
override is different from the underlying file.
Freshening Expired Overrides
OverrideAudit will warn you when you have any overrides that have
expired; that is, the file that it
is overriding has been updated since you created or last edited your override. In such
a case, you should check to see how the changes impact you and if you need to take
any action (for example, to pick up new bug fixes).
OverrideAudit determines that an override has expired when the underlying file has
a newer modification date than the override itself, which indicates that the source file
has been potentially altered. Making any changes to an override (or just saving it
without making any changes) will update the last modification time and "freshen" the
override.
If you are viewing a Report that displays the names of
existing overrides, you can also take the following actions:
-
Open the context menu on the name of an expired override and select the
OverrideAudit: Freshen Override
command to freshen that single
override.
-
Open the context menu on the name of a package which contains at least one
expired override and select the OverrideAudit: Freshen Package
command to freshen all expired overrides within that package all at once.
Deleting Overrides
Sometimes overrides reach a point where they are no longer useful. This can be because
you have decided that you don't like the change, or possibly the package author has
officially fixed a problem that you were working around. OverrideAudit allows you to
easily delete an override when you no longer need it.
Like most commands, this operation available in a variety of ways:
-
From within an Edit or Diff of an override, you can select the OverrideAudit: Delete this Override
command from the context menu or OverrideAudit: Delete Current Override
from the Command Palette.
-
From within a report that displays the names of overrides, you can open the
context menu over the name of an override and select the OverrideAudit: Delete Override
command.
Note:
When OverrideAudit deletes an override, it tries to places it into the Recycle
Bin/Trash (depending on your operating system) so that you can get it back if you
need to.
This is done through the same mechanism that Sublime itself uses to delete files.
Warning:
When you delete an override, Sublime will unload it but will not automatically
reload the package to pick up the original file.
For this reason, it is a good idea to restart Sublime after deleting overrides to
ensure that everything works as you expect it to.