Embracing the Messiness in Search of Epic Solutions

IntelliJ: Handling SVN Global Ignore List

Posted

in

PROBLEM

Every time we check out a project from SVN for the first time, we always have to remember to set the SVN ignore list in IntelliJ.

SOLUTION

NOTE: We only need to perform these steps just once per development machine.

To do so, we configure the SVN global ignore list and have IntelliJ to conform to that rule.

In Mac, go to IntelliJ IDEA -> Preferences. In Windows, go to File -> Settings.

In the preference dialog, go to Version Control -> Subversion.

Check Use system default Subversion configuration directory.

Note down Subversion configuration directory.

Close preference dialog.

Open [SVN_CONFIG_DIR]/config in a text editor.

Scroll to the [miscellany] section that looks something like this:-

...
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
#   *.rej *~ #*# .#* .*.swp .DS_Store
### Set log-encoding to the default encoding for log messages
# log-encoding = latin1
...

Uncomment global-ignores statement by removing #:-

...
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
   *.rej *~ #*# .#* .*.swp .DS_Store
### Set log-encoding to the default encoding for log messages
# log-encoding = latin1
...

Add the following patterns:-

...
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
   *.rej *~ #*# .#* .*.swp .DS_Store
   .idea target .git .classpath .project .settings *.iml *.log *.bak *.class *.jar *.war *.ear
   node_modules pom.xml.versionsBackup
### Set log-encoding to the default encoding for log messages
# log-encoding = latin1
...

Save and close this config file.

Now, all the unnecessary files will not appear under “Changes” section in IntelliJ and they will not be committed into SVN.

Comments

2 responses to “IntelliJ: Handling SVN Global Ignore List”

  1. […] 5000 files in this directory. So, remember to configure a VCS exclusion on this directory (see IntelliJ: Handling SVN Global Ignore List for more […]

  2. […] We do not want to commit node_modules directory into any VCS because there are at least 5000 files in this directory. So, remember to configure a VCS exclusion on this directory (see IntelliJ: Handling SVN Global Ignore List). […]

Leave a Reply