this post was submitted on 30 Oct 2024
91 points (98.9% liked)

Linux

47948 readers
1168 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Personally, to keep my documents like Inkscape files or LibreOffice documents separate from my code, I add a directory under my home directory called Development. There, I can do git clones to my heart's content

What do you all do?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 1 hour ago

C:\repos or ~/repos

[–] [email protected] 3 points 3 hours ago

~/.projects

[–] [email protected] 1 points 2 hours ago* (last edited 2 hours ago)

Unfortunately I'm still on windows, so [User]/Documents/Projects/*

[–] [email protected] 5 points 4 hours ago

~/src/${reponame}

[–] [email protected] 3 points 4 hours ago* (last edited 4 hours ago)

~/workspace/git

That way I can also keep other stuff in the same "workspace" directory and keep everything else clean

I have a Code, simulations, ECAD, and FreeCAD folder in the workspace folder where projects or 1-offs are stored and when I want to bring them to git, I copy them over, play around in the project folders again, then copy changes over when I am ready to commit.

I could better use branching and checking out in git, but large mechanical assemblies work badly on git.

[–] [email protected] 7 points 6 hours ago

${HOME}/repos

[–] [email protected] 4 points 5 hours ago

~/code/$LANGUAGE/$REPONAME

[–] [email protected] 4 points 7 hours ago

I used to use ~/devbut for years now I use ~/Workspace becaue Eclipse made me do it

[–] [email protected] 5 points 7 hours ago

~/code for everything I want to change/look at the source code.

~/.local/src for stuff I want to install locally from source.

[–] [email protected] 2 points 6 hours ago

XDG Documents folder

[–] [email protected] 3 points 7 hours ago

All over the place...

[–] [email protected] 3 points 8 hours ago* (last edited 8 hours ago)

~/repo for code I write and ~/src for code I didnt.

[–] [email protected] 2 points 7 hours ago
[–] [email protected] 5 points 10 hours ago
[–] [email protected] 1 points 7 hours ago
[–] [email protected] 1 points 7 hours ago

~/git/AUR|dev|whatever/$(git clone) is where mine usually reside.

[–] [email protected] 1 points 7 hours ago
[–] [email protected] 3 points 10 hours ago

For my personal projects I use ~/dev/projects/

For clones I use ~/dev/clones

My audio engineering stuff is at ~/audio/{samples, plugins, projects, templates}

[–] [email protected] 34 points 19 hours ago
[–] [email protected] 2 points 10 hours ago* (last edited 9 hours ago)

Any naming convention is fine as long as it's meaningful to you. But it's a good idea to keep your own repos separate from the random ones you clone from the internet.

[–] [email protected] 2 points 10 hours ago

For a project called "Potato Peeler", I'll put it into a structure like this:

~/Projects/Tools/Potato-Peeler/potato-peeler/

Tools/ is just a rough category. Other categories are, for example, Games/ and Music/, because I also do gamedev and composing occasionally.

Then the capitalized Potato-Peeler/ folder, that's for me to drop in all kinds of project-related files, which I don't want to check into the repo.

And the lower-case potato-peeler/ folder is the repo then. Seeing other people's structures, maybe I'll rename that folder to repo/, and if I have multiple relevant repos for the Project, then make it repo-something.

I also have a folder like ~/Projects/Tools/zzz/ where I'll move dormant projects. The "zzz" sorts nicely to the bottom of the list.

[–] [email protected] 16 points 17 hours ago* (last edited 17 hours ago)

~/src/

Simple, effective, doesn't make my home folder any more of a mess than I already left it as.

[–] [email protected] 1 points 9 hours ago

~/gits

Documentation is usually a doc folder inside the repo or just a README.md for small projects.

[–] [email protected] 27 points 20 hours ago (3 children)

~/dev/, with project/org subdirectories

[–] [email protected] 21 points 18 hours ago (1 children)

Admittedly, that irks me slightly just because of the shared name with the devices folder in root, but do what works for you.

[–] [email protected] 19 points 17 hours ago* (last edited 17 hours ago) (1 children)

I actually have my whole home directory like that for that reason haha

bin - executables
dev - development, git projects
doc - documents
etc - symlinks to all the local user configs
med - pictures, music, videos
mnt - usb/sd mountpoints
nfs - nfs mountpoints
smb - smb mountpoints
src - external source code
tmp - desktop
[–] [email protected] 20 points 12 hours ago

This is pure insanity. Chaos.

[–] [email protected] 1 points 10 hours ago
[–] treadful 3 points 19 hours ago

Same. Short and sweet.

[–] [email protected] 15 points 19 hours ago
[–] [email protected] 6 points 16 hours ago

Most of my code and some non-code is under ~/src, but I have repos scattered all around for other things.

[–] [email protected] 5 points 16 hours ago* (last edited 16 hours ago)

~/Projects/$TOPIC_OR_LANGUAGE/$PROJECT_NAME

ie.

  • ~/Projects/Web/passport.ink for a web dev project
  • ~/Projects/Minecraft/synthetic_ascension for a Minecraft mod
  • ~/Projects/C++/journalpp for a C++ library
[–] [email protected] 1 points 11 hours ago

Like some other ppl here, I clone everything in a git folder under my home directory.

[–] [email protected] 9 points 19 hours ago

Like others, I have a folder in my home directory called "Code." Most operating systems encourage you to organize digital files by category (documents, photos, music, videos). Anything that doesn't fit into those categories gets its own new directory. This is especially important for me, as all my folders except Code are synced to NextCloud.

[–] [email protected] 10 points 20 hours ago (2 children)

Same, but by language, e.g. Development/Python.

[–] [email protected] 9 points 20 hours ago (1 children)

What if a project uses multiple languages?

[–] [email protected] 19 points 19 hours ago* (last edited 19 hours ago)

Symlink each individual file, obviously.

[–] [email protected] 3 points 15 hours ago (1 children)

Thinking of the projects I work on, I don't understand the value in categorizing by language, rather than theme (~/Development/Web/, ~/Development/Games/) or just the project folders right there.

[–] [email protected] 1 points 2 hours ago

Yeah, everyone has to find their own way of organising, I guess. For me, there are too many different little projects that it would get messy throwing them all in one folder. And they’re so varied that I couldn’t think of one single “theme” or topic for most of them. Nothing I would remember a week later anyways.

[–] [email protected] 2 points 14 hours ago

~/sites

I have always used it. I liked how it was easy to find in the home directory amongst other folders. Then under that I have a folder for every organization, including myself, and repositories live in those folders.

[–] [email protected] 6 points 18 hours ago* (last edited 18 hours ago)

~/projects for things I made

~/git for things other people made

[–] [email protected] 7 points 19 hours ago* (last edited 19 hours ago)

~/git/vendor/<gitUser>/<repo>

and

~/git/<myName>/<forge>/<user>/<repo>

Examples:

~/git/vendor/EnigmaCurry/d.rymcg.tech
~/git/mike/forgejo/mikew/myproject
~/git/mike/github/johndoe/otherProject
[–] [email protected] 5 points 19 hours ago (1 children)

I tend to follow this structure:

Projects
├── personal
│   └── project-name
│       ├── code
│       ├── designs
│       └── wiki
└── work
    └── project-name
        ├── code
        ├── designs
        └── wiki
[–] [email protected] 1 points 10 hours ago (1 children)

Is "code", "designs" and "wiki" here just some example files in the repo or are those sub-folders, and you only have the repo underneath code?

[–] [email protected] 2 points 8 hours ago* (last edited 7 hours ago)

They are the project's subfolders (outside of the Git repo):

  • code contains the source code; version-controlled with Git.
  • wiki contains documentation and also version-controlled.
  • designs contains GIMP, Inkscape or Krita save files.

This structure works for me since software projects involve more things than just the code, and you can add more subfolders according to your liking such as notes, pkgbuild (for Arch Linux), or releases.

[–] [email protected] 1 points 14 hours ago

~/github/ and ~/gitea/

[–] [email protected] 4 points 20 hours ago (1 children)

I use ~/workspace . I think I got this from when I first started using Java years ago. Eclipse created new projects in this directory by default maybe?

[–] [email protected] 2 points 10 hours ago

I do this too, maybe this explains why

[–] [email protected] 3 points 19 hours ago

~/code/git/<org name>/<project>

Mostly a holdover from when I regularly pulled svn/hg/cvs repos and needed reminding what tool to use for which project.

No idea why I still do it.

[–] [email protected] 3 points 19 hours ago

Usually ~/devel/

On my work laptop I have separate subdirs for each project and basically try to mirror the Gitlab group/project structure because some fucktards like to split every project into 20 repos.

load more comments
view more: next ›