MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Notebooks and CVS: how to automatically strip output?

  • To: mathgroup at
  • Subject: [mg33062] Re: Notebooks and CVS: how to automatically strip output?
  • From: Albert Retey <albert.retey at>
  • Date: Fri, 1 Mar 2002 06:51:01 -0500 (EST)
  • Organization: Visual Analysis AG
  • References: <a5fm1r$e1a$>
  • Sender: owner-wri-mathgroup at


> I like to keep all my files in a version control system, but this system
> isn't coping very well with large notebooks containing graphics etc.
> At present I simply use the front end menu Kernel->Delete All Output
> before saving -- but this isn't quite satisfactory.
> What I need is a way to perform this action automatically from a
> makefile: read a given notebook, strip the output (and cache) and write
> the result to a new notebook file (which I will then send to the CVS).

I'm not really answering because I have a good solution to your problem,
but because I have thought about the same problem myself and found that
it would take some effort to make the setup really useful, since cvs
will regard notebooks as changed even if you only open or close a
cellgroup and things like that. Also I don't think it is very helpfull
to get these <<<<< marks written right into the .nb files when you merge
versions/branches or compare files (diff). These files will not even be
opened by mathematica and you don't want to work your way to the Mathematica 
Boxes to understand the diffs....
To really use the advantages of cvs you would need to generate valid
notebooks from the output of cvs mergers. Then cvs would be very useful,
so,if anyone has time to implement this am willing to test :).

Of course you can do what you were asking for and also what I have
mentioned within mathematica, and you also can run the kernel from a
command line from within a makefile, if that's a solution for you. It
should be possible to read  in the .nb file even without the frontend
beeing present, but you probably have to care about throwing away
caching information and stuff like that by yourself, just have a look at
a .nb file with an editor. Then something like
DeleteCases[notebook,Cell[_,"Output"|"Graphics",___]] on the
Notebook-Structure for Output and Graphics Cells should be possible,
more sophisticated patterns to decide whether to delete cells or not are
of course also possible. I have no idea about how fast such an approach
would be, but it could be a first step...
After that maybe one could close all subgroups. And then...

If anyone found a good solution to do (automated) version control for
mathematica notebooks I would be very interested...


  • Prev by Date: Re: Intersection[...,SameTest] ?
  • Next by Date: RE: perhaps? RE: Finding pattern Matched series
  • Previous by thread: Re: which book is good to learn the programming in Mathematica?
  • Next by thread: Re: Notebooks and CVS: how to automatically strip output?