Complete syntax for .jazzignore file
This question was asked nearly 10 years ago, but didn't really get an answer -- see https://jazz.net/forum/questions/58076/complete-syntax-for-jazzignore-file. The answer given, "I don't believe the syntax is documented anywhere other than the header of the .jazzignore file.", doesn't answer the question. So I'm asking it again. What is is the complete syntax for the .jazzignore file? From trial and error with RTC 6.0.6.1, I found that ignore patterns don't have to be enclosed in braces. For example,
core.ignore= failures infos warnings
causes files named failures, infos, and warnings to be ignored in the directory)containing the .jazzignore file. I've also found that ignore patterns can include braces:
core.ignore= {{*\}.txt}My concern is that there may be other syntax not described in the .jazzignore header that I haven't discovered by trial-and-error. This makes it difficult (impossible) to properly parse.jazzignore files for any kind of static analysis.
2 answers
I have filed a documentation defect for this request in: https://jazz.net/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/531093
I encourage everyone to file documentation defects for any documentation problems you encounter. My personal experience is that those get fixed quickly.
While waiting on an answer to my question, I decided to look the RTC / EWM source in the RTC 6.0.6.1 and EWM 7.0.2 server SDK to see if could find information on the .jazzignore file syntax. Here's what I found.
-
com.ibm.team.filesystem.client.internal.ignore.IgnoreFileLoader
states that "Ignore files must start with### Jazz Ignore X
where X is the version". Looking at .jazzignore files generated by RTC 6.0.6.1 and EWM 7.0.2 I found that both generated version 0 .jazzignore files. I also found only one class,com.ibm.team.filesystem.client.internal.ignore.loaders.JazzIgnoreFileLoader_0
, that implements interfacecom.ibm.team.filesystem.client.internal.ignore.IgnoreFileLoader.IIgnoreFileLoader
. From this, I infer that there is only one .jazzignore file version, version 0.
-
com.ibm.team.filesystem.client.internal.utils.PropertiesLoader.load()
uses a small state machine to parse a .jazzignore file into a map of property key / property value pairs.
-
com.ibm.team.filesystem.client.internal.ignore.JazzIgnoreFile
defines the local ignore property as "core.ignore", the recursive ignore property as "core.ignore.recursive", the default local ignore value as "bin", and the default global (recursive) ignore property as "*.class".
-
com.ibm.team.filesystem.client.internal.ignore.loaders.JazzIgnoreFileLoader_0.tokenizeProperties()
uses a small state machine to parse a .jazzignore property value into in an array of ignore patterns.