10

I don't know whether this is appropriate question for this or Superuser SE. Please feel free to migrate to that if required.

Background :

I use git for my daily code or report writing. However when it comes to making power point presentations, I found limitations of git (e.g. large size files, photos, videos etc). Also I noticed that if you just open .pptx file without even changing anything , it shows modified in git .

Question:

I was wondering is there any better version control system for power point ?

Community
  • 1
  • 1
Dexter
  • 1,421
  • 3
  • 22
  • 43

3 Answers3

7

This is basically a cultural/philosophical thing.

The UNIX philosophy is to design programs that can work together. One component of that is to prefer text-based file formats.

Most publishers of windows-based programs seem to shun cooperation outside of their own. So undocumented binary file blobs are the rule rather than the exception. The usually unstated goal is vendor lock-in.

If you didn't make a change but it still shows a difference after opening it that could be an internal timestamp in the file, or the access time in the filesystem. In that case I would just do a git checkout of the file.


After intense market pressure, microsoft moved to an XML-based file format. A modern office document is basically a bunch of XML files packed up into a zip-file.

So a possible way to make Office files more readable for git would be to use filters to make something legible out of a diff. The git attributes page in the git book gives an example for docx files.

It seems that there is an equivalent program for powerpoint slides. So you could install that to make sense of the diffs in pptx files.

Another option would be to write a program that given the paths of two pptx files extracts them (since they are basically zip files), uses something like xmllint to format the XML files and then uses a recursive diff to find out what's changed.

Roland Smith
  • 42,427
  • 3
  • 64
  • 94
  • The Tammick program mentioned above extracts text from PowerPoint, but there's quite a bit of other stuff that can change, so it could be misleading. Likewise, while most of the content of newer PowerPoint files is XML in a ZIP package, certain types of content (audio, video, images, a few other things) appear in the package in their original binary format (PNGs, for example) or in whatever format PPT converts them to (TIFF images become PNGS, generally). Not in the spirit of git, I realize, but sometimes saving dated versions of the files is the simplest and most reliable. – Steve Rindsberg May 16 '16 at 15:39
  • Writing a custom filter like I've described could even tell you *that* an image had changed, even if it couldn't describe *how*. Since the latter is pretty hard especially with lossy compression and changes in resolution, I'd say that just noticing the change should be good enough. Now that I've thought about it, I might even try my hand at something like this. AFAIK, of the ms-office programs only ms-word has the ability to track changes, and even that must be explicitly enabled. – Roland Smith May 16 '16 at 17:17
  • @RolandSmith Thanks for the answer +1 . Can programs like "ppt2txt" work with pictures and videos ? Nonetheless I will look into those programs. – Dexter May 17 '16 at 08:21
  • @Dexter As the name implies, it works only for text. As far as I know, there is no really good way of showing a difference between two images. – Roland Smith May 17 '16 at 19:46
  • Images are never easily handled in a version control system (whichever), they are always (the mainstream formats) always binary. The image difficulty is not at all PowerPoint related but a version control challenge in projects of any kind. Luckily images are not prone to a lot of editing between team members as opposed to more traditional code files. – Youp Bernoulli Oct 18 '19 at 10:03
1

An alternative would be to use Beamer

You define your slides as text, making it is easy to use with git.

Note that it doesn't have the power of powerpoint and the design is not as sexy...

Fundhor
  • 3,369
  • 1
  • 25
  • 47
  • 1
    I would agree, if you are spending lot of time on creating presentations, it may be worth to invest a bit of time on learning LaTeX and Beamer. It offers full version control since, they are basically text files. The LaTeX is based on WYSIWYM (What You See Is What You Mean) compared to WYSIWYG (What You See Is What You Get) in MS office suite. And while, Beamer (and LaTeX) may not have all the shiny features of MS office, in a long run, it generates better, consistent documents and saves a lot of time. My two cents. – NotepadPlusPlus PRO Mar 12 '20 at 15:25
0

Power point produces binary files. Git is more suitable for text files. Therefore, on any commit it translate it a a new version.

The only option I see is using the built-in version in power-point/word etc. itself

Elyahu
  • 226
  • 1
  • 2
  • 15
  • Built-in version of what ? and how ? – Dexter May 17 '16 at 08:22
  • Never tried it, have fun ... http://blog.martinfenner.org/2014/08/25/using-microsoft-word-with-git/ https://www.perforce.com/product/components/perforce-plugin-microsoft-office That;s for WORD but it exist in PPT to. http://superuser.com/questions/656771/does-word-2013-have-version-control – Elyahu May 17 '16 at 08:53