LPT Do it.
LPT Do it.
Unzip the docx with a pre-commit hook
(This is not a serious suggestion)
.gitattributes can invoke Word on windows to diff versions, and there are plenty of open source scripts that can do it if you don’t have a copy of Word (or Windows) lying around.
But Word is like shit for papers. Use LaTeX instead.
Why on Earth would you curse yourself with MS Office anyway, especially if writing docs is your professional responsibility?
Why not use Git+Markdown+Pandoc, have your copy, data and layout separate?
I understand that a lot of istitutions/companies impose stylistic/technical requirements for docs and publications, - still doesn’t matter you gotta stay married to the worst tooling.
Why on Earth would you curse yourself with MS Office anyway
idk it says .docx in OP’s image
#LyX 2.0 created this file. For more info see www.lyx.org
Wait, I thought you guys did it manually…
Anyway, I should still learn it.
BTRFS for all us lame folks.
PS Windows pervious versions is actually pretty good, but no one uses it on desktop.
The weird part is that most modern office software has version control built right in.
And I still do this with all my files anyway.
Use date/time in your file name,using GMT:
Metrics of Sales 2024-05-22_14-29.docx
Very unlikely to have 2 docs with the same down-to-the-minute time stamp in the name.
I have an AutoHotkey script that drops the current date in ISO8601. I don’t need timestamps often, so date is sufficient. I like to have manual control of file names since I very frequently do not want files renamed.
Cute related story: I taught my 6 y.o. son this macro so he can save his Krita art with the date (and then some keyboard spam ending in “poop”, usually). The macro shortcut I set is `T so he now calls the date “ticky tee”. Any set of numbers with dashes is a “ticky tee” to him, and if AutoHotkey is closed he runs to get me because “ticky tee isn’t working, Daddy!”
Dammit, why have I never thought to use AHK for this? I already use the custom context menu script someone developed about 15 years ago (Favorite Folders? It’s on the AHK/AutoIT forum) , I can just add it to that.
AHK/AutoIT are game changers. I feel naked on a machine without it, I’m so used to Ctrl-Middle -click to get to all sorts of things… Folders, scripts, tools, automations (like your date idea), etc.
Well, if you can’t be bothered to ensure file names mean something, then you get to enjoy the results.
In the Real World®, sometimes files get shared and traded around, and conversations happen about them, and you need to be able to quickly verify you’re looking at the same doc.
We can’t all be connected to the same version control system.
Well, if you can't be bothered to ensure file names mean something, then you get to enjoy the results.
Now you're getting it.
Who handles the live replication and offsite storage rotations for your quantum encrypted multi site redundant back up system?
I kid (because your excellent practices put mine to absolute shame). Thanks for the reminder to get serious about backups!
I encountered an engineering firm that did this. I wanted to do it too.
The company I worked for at the time (said engineering firm was doing subcontracting for us) was full of older business people who could never in a million years have wrapped their heads around the idea.
They are generally large, uncompressable and replaced instead of updated like text files. All files stay in the repo history forever, they make repos big and slow compared to text files with no advantages provided.
If a binary file needs to be stored in git, it’s usually more appropriate to use git LFS for that file. Git LFS stores the binary outside of the repo in the same way that database engines store binary outside of the respective table.
I also added a Makefile for mine (LaTeX), and it would add the commit hash to the front page (with an asterisk if the repository had uncommitted changes).
So, if I gave a draft to someone and got feedback, I’d know exactly which revision it was.
Sure thing. This also includes the beamer bit which I used for my defense. It’s all pretty hacky but hope it’s useful!
# # Errors aren't handled gracefully (tex doesn't write to stderr, it seems) # If you encounter errors, use "make verbose" # # For small changes (probably those without references), use "make quick" # # Thanks to https://gist.github.com/Miliox/4035649 for dependency outline TEX = pdflatex BTEX = biber MAKE = make -s TEXFLAGS = -halt-on-error # $(MAIN).log is dumb if we have multiple targets! SILENT = > /dev/null || cat $(MAIN).log SILENT_NOER = 2>/dev/null 1>/dev/null EDITOR = vim -p PDFVIEW = evince MAIN = main PRES = presentation ALL = $(MAIN).pdf RECURS = media/ manuscripts/ VERSION := $(shell git rev-parse --short HEAD | cut -c 1-4)$(shell git diff-index --quiet HEAD && (echo -n ' ';git log -1 --format=[%cd]) || (echo -n '* '; date -u '+[%c]')) all: recurs $(ALL) pres: $(PRES).pdf scratch: scratch.pdf scratch.pdf: scratch.tex @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) verbose: SILENT = '' verbose: $(ALL) recurs: $(RECURS) @$(foreach DIR, $(RECURS), \ echo "MAKE (CD) $(CURDIR)/$(DIR)"; \ $(MAKE) -C $(DIR) $(MAKECMDGOALS);) @echo "MAKE (CD) ./" clean: @echo "SH (RM) Not recursing; 'make allclean' to clear generated files." @rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml allclean: recurs @echo "SH (RM) A clean directory is a happy directory" @rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml version: @echo "SH (ver) $(VERSION)" @echo $(VERSION) > VERSION.tex nixpages: main.pdf @echo "PDF (pdftk)" @pdftk main.pdf cat 1 4-end output final.pdf quick: $(MAIN).tex version @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) $(MAIN).pdf: $(MAIN).tex $(MAIN).bbl all.tex tex/abstract.tex tex/intro.tex tex/appendix.tex tex/some_section.tex tex/some_other_section.tex @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) $(MAIN).bbl: $(MAIN).aux @echo "BIB (bib) $(MAIN)" @$(BTEX) $(MAIN) > /dev/null $(MAIN).aux: $(MAIN).tex $(MAIN).bib version @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) $(PRES).pdf: $(PRES).tex $(PRES).bbl tex/beamer*.tex tex/slides/*.tex @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) $(PRES).bbl: $(PRES).aux @echo "BIB (bib) $(PRES)" @$(BTEX) $(PRES) > /dev/null $(PRES).aux: $(PRES).tex $(MAIN).bib @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) edit: @echo "EDIT (fork) $(EDITOR)" @$(EDITOR) ./tex/*.tex *.tex view: @echo "VIEW (fork) $(PDFVIEW)" @$(PDFVIEW) $(ALL) $(SILENT_NOER) &I also had some Makefiles in other directories, e.g., for my media/ I had:
and for media/svgs/:
Makefile in other comments. You’ll need something like this on the title page (this assumes you use my Makefile which puts the version in VERSION.tex [that’s the literal name of the file, not a placeholder]):
{\bf{\color{red}DOCUMENT REVISION:}} {\color{blue}\input{VERSION}}
Had to write a paper in college with 100 citations.
We used zotero for citation management, and it would dump a bibtex file on demand.
The paper was written in markdown, stored in git, and rendered through pandoc. We would cite a paper with parentheses and something resembling an id, like (lewis).
We gave pandoc a “citation style definition”, and it took care of everything. Every citation was perfectly formatted. The bibliography was perfectly formatted. Inline references were perfect. Numbering was perfect. All the metadata was ripped from pdfs automatically. It was downright magical.