Mathematica is a famous computational software program in science, engineering, etc. However, the source code of Mathematica is usually stored in the format of Mathematica Notebook, which is hard to track with a Version Control System, such as git, mercurial, etc. Here I’m providing a solution to solve this problem.

For example, for a Mathematica notebook with the following simple lines:

```
In[1]:= Integrate[x^2, {x, 0, 1}]
Out[1]= 1/3
```

The contents in this file could be as long as below (You can inspect the contents of the notebook by opening it with a text editor):

Then how should we track a Mathematica source file if it’s a mess like this? The solution is simply: use plain text files to track.

First, edit your Mathematica Notebook files to do integrals, solve equations, etc. as you usually do. After that, click on **Save As…** under the **File** menu:

Then choose the format as **Plain Text (*.txt)**:

OK, now we have a file with the simple content. If we follow the example above, the contents of the file should be:

```
In[1]:= Integrate[x^2,{x,0,1}]
Out[1]= 1/3
```

You can then track this file with your favorite version control system.

When you want to load this file, first, click on **Open…** under **File** menu. Then choose the file format as **Text File** in the Open File Dialog:

Finally, choose the plain text file you saved before in the file browser, and enjoy!

**Note:** I noticed that this method currently doesn’t work for plot. Please let me know if you have a method that works for plot.

Pingback: Version control of Mathematica notebooks - QuestionFocus

stevebut when you load the file again as text, all formatting is lost, as Mathematica reads it as plain text. Did you actually try this before? Try making a plot, save as it text, then read the file and see what will happen

Hong XuI didn’t notice that this method doesn’t work for plot. I’ll try to figure out how it would work for plots.