What is your directory structure like for programming?
For most of college, I’ve kept it simple: I’d create a directory in my home folder for each project, then eventually move older or inactive ones into ~/programming/. When I change devices or hit file size limits, I’ll compress and send things to my NAS.
This setup has worked pretty well so far. But now that I’m graduating and my projects keep stacking up, I’m starting to wonder if there’s a more efficient system out there.
Curious—how do you all organize and store your projects? Any tips or methodologies that have made your lives easier over time?
The only person I’ve talked to about this is my mentor who’s been programming since the 60s (started on the IBM 1620 and Bendix G15) and he just mostly keeps projects in directories in his home directory and uses his godly regular expressions skills to find things that way. Makes me wonder if I’m overthinking it…
Hosting my own git server on my NAS made my life easier and better due to the new freedoms it offers. Backups are centralized, and I have all the space i need to keep any interesting code safe. I am using forgjeo now and highly recommend it. You can also use other front ends (or none and just ssh/filesystem) but forgjeo gives me artifacts (ie docker registry), code search, LFS, and more. With my own git server, my local filesystem only has what I am working on recently (or as my workstation space allows). My home folder has a folder for each version control system (git, pijul, svn). Inside of these i have 2 sub folders: /
Some examples of different domains are: open, work, personal, dragonish. I do not separate what forge or remote service in the filesystem, this is a persona boundary.
I use git remote names and branches in each repo to handle what software forge and any upstream/maintainers i need to work with. As an example my work repos only get pushed to my work server (ie, only 1 git remote named origin set to my work's server), but my open ones will go to forgjeo and github (i setup 2 git remotes, origin and github. origin in this domain goes to my forgjeo). If i have a need i go into some more git branching strategy which I do find has helped me over my life, but I think I am overthinking this post now! keep it all simple enough for what your needs are.
I also use a NAS as my primary git server, although I’ve never heard of Forgejo before, but it sounds really interesting and definitely something that I may look into. It sounds really handy to have on hand, especially with code search and LFS. So thanks for introducing that!
Def going to check this out— I think it will solve my biggest problem with GitHub which is just the number of large files I have to deal with— overthought comments are the best comments- thanks!
Try forgejo, it's the forge Codeberg uses.