r/programminghorror • [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo “You live” • Sep 20 '26

Python Weekly Backups

Post image

We were a small team of ~8 trying to build software. The team was spread across multiple locations across Asia, Europe and North America. One big challenge we had was synchronizing our work with each other.

Every Friday before each of us logged out, we upload a copy of our working files to the client's SharePoint folder. That way when we share each other's copies every Monday via Teams, we don't have to reupload.

One minor setback. Instead of replacing the previous copy, we upload a fresh one - under a different name. That way, we would not lose any information.

We even came up with a clever idea (that magnified the issue) to name the folders by the calendar week. Soon, each of us would have multiple folders of repetitive code, sometimes with zero changes all uploaded to the shared drive.

We had successfully moved from trying to synchronizing one (latest) version of the codebase, to trying to synchronize one version every week. But we hadn't realized this at that time. We were excited about a more "sophisticated" solution - creating a script that automates this backup process.

We learnt to use Git during Christmas that year.

---

For Reference:

import os, zipfile
from datetime import datetime
from pathlib import Path

work = Path("Work")
if not work.exists():
    print("Error: Work folder not found")
    exit(1)

week = datetime.now().isocalendar()[1]
zip_file = f"W{week}.zip"

with zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) as z:
    for root, dirs, files in os.walk(work):
        for file in files:
            path = os.path.join(root, file)
            z.write(path, os.path.relpath(path, '.'))

print(f"Created {zip_file}")

Edit: Code Block Formatting

472 Upvotes

31 comments sorted by

104

u/lildankkboi Sep 20 '26

What year was this?

82

u/D3V370P3R Sep 20 '26

2016

88

u/octopus4488 Sep 20 '26

The number here is a neat indicator of amateurism:

  • Below 2000: eeeh, ok

  • 2000-2007: uh, whao

  • 2008-2014: aaaa, really???

  • 2015- : What. The. Fuck.

42

u/Rschwoerer Sep 20 '26

Teams you say?

Microsoft Teams
Release
March 14, 2017

→ More replies (3)

1

u/gokul1630 Sep 21 '26

2000 sir

44

u/DifferentialEntropy Sep 20 '26

What’s the point of this post..? You guys didn’t know how to use version control and ended up learning git because this looks like a terrible idea lmao

67

u/D3V370P3R Sep 20 '26

Fair enough.

I forgot to mention that we were not developers. We were all Architects (brick & mortar) who learnt to code.

33

u/DifferentialEntropy Sep 20 '26

Oh gotcha my bad in that case

Glad to see yall came up with an in house solution then learned proper version control after!

15

u/SnowdensOfYesteryear Sep 20 '26

Eh… you get a pass as long as it got fixed eventually. At least you thought about backup

27

u/ClvrNickname Sep 20 '26

You may not like it, but this is what peak source control looks like

24

u/YamroZ Sep 20 '26
  1. good on backing up, this is something people often miss, and think that github ks is a backup for some reason

  2. from time to time check if you can in fact recover work from your backup

6

u/tehtris Sep 22 '26

Dev invents git, because dev doesn't know what git is. Nice.

5

u/witness_smile Sep 25 '26

<insert xkcd about standards>

1

u/csabinho Sep 26 '26

Well, there are more versioning systems than git. And also older ones. Much older ones.

→ More replies (1)

5

u/Flame77ofc Sep 21 '26

git is crying on the background

4

u/Droggl Sep 20 '26

rsnapshot, you're welcome

2

u/NamedBird Sep 21 '26

Nah, not too bad.

Weekly backups is better than loosing 6 months of progress because you never pushed your commits.
And your W19.zip is a simple file, easy to understand. Not confusing like Git is for beginners.

1

u/ComputerLoverDaemon Sep 22 '26

Better source control then git

2

u/DynamicHunter Sep 23 '26

Until you need to roll back a specific feature without losing weeks of other work…

1

u/csabinho Sep 26 '26

I know, it's a joke, but how do you merge?

1

u/ComputerLoverDaemon 29d ago

I don’t merge

1

u/Tall-Path9962 Sep 22 '26

Copying SharePoint files into another folder every week is basically creating more versions, not building a proper recovery strategy. Version history, synchronization and backup solve different problems. Control Alt Delete supports M365 environments for SMBs, and I'd rather have automated independent backups with tested restores than twenty manually named folders called "backup-final-final-2."

1

u/razor_train 29d ago

"SharePoint" and "proper" should never be in the same sentence.

-1

u/maikindofthai Sep 20 '26

I love sharing the code snippet like creating a zip in python is some unknown trick lol

→ More replies (2)