11
Björn Stiel, Founder/CEO at spreadgit Version Control for Spreadsheets A fresh take on an old problem [email protected]

Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

  • Upload
    eusprig

  • View
    169

  • Download
    1

Embed Size (px)

DESCRIPTION

Version control and continuous integration have become de-facto standards in software engineering. Source control gives developers control over changes to their source code, removes the friction of team collaboration and is vitally important for locating and fixing bugs. For developers, it is unthinkable to work without revision control. Yet when it comes to spreadsheets, the best we seem to have come up with so far is file name timestamping and keeping long lists of file versions. This talk gives an overview of source control and collaboration concepts. We start off with a brief introduction to graph theory, cover basic version design concepts and move on to the question why spreadsheets are stubbornly tricky beasts to version control. We will cover practical examples and discuss how to integrate version control (and continuous integration) into our workflow.

Citation preview

Page 1: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Björn Stiel, Founder/CEO at spreadgit

Version Control for SpreadsheetsA fresh take on an old problem

[email protected]

Page 2: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Looks familiar?

Versioning, but no control

Search?

Compare?

Track ownership?

Page 3: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

A primer on version control

Merge

Compare (aka Diff)

Restore

Collaborate

Page 4: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Centralised vs distributed version control systems

Text

Binaries?

Excel?

CVS, Subversion, Perforce, Mercurial, Git

A primer on version control

Page 5: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Show me the diffs!

<section>

<h2>hello</h2>

</section>

<section>

<h2>hello!</h2>

</section><section>

+

- <h2>hello</h2>

+ <h2>hello!</h2>

</section>

Page 6: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Show me the diffs?

Sheets II: Values

Sheets I: Formulae

Sheets (again): Charts, formatting, forms, ActiveX objects

Code: VBA

Workbook properties

Page 7: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Diffing sheets

A two dimensional problem

What is it actually that we are after?

Up to 1,048,576 rows by 16,384 columns (~17 billion cells)

Kill the noise: cells vs rows vs columns

Page 8: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Models vs views

A change is a change. Or is it not?

[A1]: =TODAY()

[A2]: =A1 + 1

[A1]:

[A2]: =TODAY()

[A3]: =$A$2 + 1

Page 9: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

A very brief demo

It‘s show time

Page 10: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Our stack

On-prem VM vs hosted server

Client: Python (.exe)

Server: Python/Flask, JSON API, Webserver, NoSQL database

UI: Browser, HTML/jQuery

Page 11: Version control for spreadsheets - Bjoern Stiel at Eusprig 2014

Questions? Thank you!

[email protected]

https://spreadgit.com