Dessalines@lemmy.ml to General Programming Discussion@lemmy.ml · 17 days agoWorktrees: Git's best kept secret (and why you should use them) | Tom Upswww.tomups.comexternal-linkmessage-square20linkfedilinkarrow-up124arrow-down11
arrow-up123arrow-down1external-linkWorktrees: Git's best kept secret (and why you should use them) | Tom Upswww.tomups.comDessalines@lemmy.ml to General Programming Discussion@lemmy.ml · 17 days agomessage-square20linkfedilink
minus-squareSpaceNoodle@lemmy.worldlinkfedilinkarrow-up5·17 days agoWhat benefits does this provide over a cloned copy of the repository?
minus-squareatzanteol@sh.itjust.workslinkfedilinkEnglisharrow-up4·17 days agoIt’s more space efficient - you don’t get another full copy of the repo. The worktree points back to the same .git directory. And since it’s in the same repo you can diff between branches with other worktrees without needing to setup remotes for each of them.
minus-squareSpaceNoodle@lemmy.worldlinkfedilinkarrow-up1·17 days agoYou can already diff between branches in a single worktree.
minus-squareatzanteol@sh.itjust.workslinkfedilinkEnglisharrow-up2arrow-down1·17 days agoYes, that’s what I said.
minus-squareSpaceNoodle@lemmy.worldlinkfedilinkarrow-up1·edit-217 days agoThen why mention setting up remotes? Why would multiple worktrees help if a worktree is not necessary for the functionality?
minus-squareatzanteol@sh.itjust.workslinkfedilinkEnglisharrow-up3arrow-down1·17 days agoThe question I was answering was about worktrees vs. multiple clones. With multiple clones you need to setup remotes to share branches between directories. With worktrees sharing a working copy you don’t.
minus-squareDessalines@lemmy.mlOPlinkfedilinkarrow-up3·17 days agoNo need for another full git history copy, nor submodules and settings.
minus-squareeldavi@lemmy.mllinkfedilinkEnglisharrow-up2arrow-down1·17 days agoevery time i do this, i have to annotate the old copy somehow. i usually use a date and months later i have no clue why i made the copy.
minus-squareSpaceNoodle@lemmy.worldlinkfedilinkarrow-up3·17 days agoYes, you should name directories descriptively. I don’t think that’s unique to repository clones.
minus-squareeldavi@lemmy.mllinkfedilinkEnglisharrow-up2arrow-down1·17 days agodefinately not since that’s the way i learned. the problem is that a directory named master-hotfix-vgpool01-05022022 is very difficult to remember why it was created if you looked at it today.
minus-squareSpaceNoodle@lemmy.worldlinkfedilinkarrow-up2·17 days agoThen clearly it was poorly named.
minus-squareeldavi@lemmy.mllinkfedilinkEnglisharrow-up1arrow-down1·17 days agoso what would you name it?
minus-squareSpaceNoodle@lemmy.worldlinkfedilinkarrow-up1arrow-down2·17 days agoSomething that clearly communicates its purpose.
What benefits does this provide over a cloned copy of the repository?
It’s more space efficient - you don’t get another full copy of the repo. The worktree points back to the same .git directory.
And since it’s in the same repo you can diff between branches with other worktrees without needing to setup remotes for each of them.
You can already diff between branches in a single worktree.
Yes, that’s what I said.
Then why mention setting up remotes? Why would multiple worktrees help if a worktree is not necessary for the functionality?
The question I was answering was about worktrees vs. multiple clones. With multiple clones you need to setup remotes to share branches between directories. With worktrees sharing a working copy you don’t.
No need for another full git history copy, nor submodules and settings.
every time i do this, i have to annotate the old copy somehow.
i usually use a date and months later i have no clue why i made the copy.
Yes, you should name directories descriptively. I don’t think that’s unique to repository clones.
definately not since that’s the way i learned.
the problem is that a directory named master-hotfix-vgpool01-05022022 is very difficult to remember why it was created if you looked at it today.
Then clearly it was poorly named.
so what would you name it?
Something that clearly communicates its purpose.