My team is using SVN to store a lot more than just source code - we are storing all kinds of files. A process I'm working on designing is used to generate diff reports whenever a certain Excel spreadsheet is updated and acknowledged by a subset of the team. (This spreadsheet is automatically generated by a separate process; no humans ever touch it.)
Here's my workflow:
- Excel spreadsheet generated (call it
raw.xlsx). I download the file and commit to SVN.
- A pre-commit hook generates a new Excel spreadsheet (call it
to_review.xlsx) and commits that. An email gets sent to my team saying that a diff between
- Someone on my team reviews
to_review.xlsx, edits as needed, and commits it.
- A pre- or post-commit hook then makes edits to
to_review.xlsxto update a tab to reflect the edits, and commits that. (Optionally: fire an email saying that you need to now update your working copy of
to_review.xlsx.) It also generates a file
report.pdfthat summarizes the diff of
How okay or not-okay is it to use SVN in this manner - i.e., to edit the file a human just committed and re-commit it? The edit will never be against what the human added/removed, but by doing this the human immediately has an out-of-date copy as soon as he commits. I'm not sure how else to approach this - we can't go straight from
report.pdf, a human must be in the loop with