|
cherry-pick is fine I think. cherry is pretty bad I'll admit but I don't have a better suggestion. cherry-hunt?
|
# ? Oct 4, 2019 18:32 |
|
|
# ? Jun 8, 2024 04:25 |
|
It's not great but it lists the "cherries" you may want to then "pick". cherry-orchard?
|
# ? Oct 4, 2019 18:33 |
|
The problem is the established idiom is "git <verb> parameters". Cherry is not a verb. Here's where I'd browse the urbandictionary page for "cherry" to build a cheap joke but I'm posting from work and don't think that'd end well.
|
# ? Oct 4, 2019 18:37 |
|
find-cherry?
|
# ? Oct 4, 2019 19:07 |
|
git ls-cherries git cherry-pick -l
|
# ? Oct 4, 2019 19:08 |
|
git import-commit <hash>
|
# ? Oct 4, 2019 19:22 |
|
Eggnogium posted:The problem is the established idiom is "git <verb> parameters". Cherry is not a verb. Here's where I'd browse the urbandictionary page for "cherry" to build a cheap joke but I'm posting from work and don't think that'd end well. Verbing weirds language.
|
# ? Oct 4, 2019 19:24 |
|
I only have the same complaint about git as everybody else: the CLI is a mess of basic functions hidden between nonsensical flags, piping only works half the time, and whoever's in charge tries to fix this by adding on even more redundant commands instead of making a new porcelain from scratch with the benefit of hindsight. Why does 'git branch butt | git checkout' work but not 'git branch butt | git switch'? Why does 'git checkout -b' exist? Why does '--list' work on some commands but not others? Why does 'git add .' stage all new/changed/deleted files, but 'git commit -a' commits only changed/deleted files? There's probably good reasons for some or even all of these, they may be correct but they're all surprising: it would be better not to have shortcuts than to have inconsistent ones. Nonetheless, these are all extremely minor annoyances. Git is like democracy: the worst system we've found, except for all the rest. And except for Fossil. Everybody who's used Fossil seems to love it, and it comes from the SQLite guys who have made one of the greatest software tools in the world so I can totally believe that their SCM system is equally amazing. I'm gonna try it one of these days, and when I finally go insane and decide to start my own company, I'll be the crazy weird boss that forces the youngsters to use this obscure SCM that doesn't even work with my GitInstaSnapTweetHub® cloud social identity.
|
# ? Oct 4, 2019 20:18 |
|
Ola posted:Fair enough that I might be wrong about revert. But picking something that wasn't ambiguous might be better. They probably had a huge screaming fight over why "undo" wouldn't work. "Cherry pick" is obviously a well known idiom, but what exactly do you cherry pick with that command? The word "revert" as in "revert this" means returning something to a previous state, that meaning predates computer science and is not ambiguous
|
# ? Oct 4, 2019 20:32 |
|
git CLI is easy because there's only a small handful of things you need to actually remember, then when you run into an issue there's a stackoverflow page that tells you exactly what you need to do everyone only ever runs into the same 5-6 "hard" git problems. it doesn't matter that git has a thousand weird commands and parameters because if you ever know/care about them you're doing expert-level git stuff anyway.
|
# ? Oct 4, 2019 20:55 |
|
tbh, I'm not sure if I understand git better or if the CLI has gotten better. One thing that has changed - automatic completion of the commands and flags make a huge difference in discoverability.
|
# ? Oct 4, 2019 21:16 |
|
Pentecoastal Elites posted:git CLI is easy because there's only a small handful of things you need to actually remember, then when you run into an issue there's a stackoverflow page that tells you exactly what you need to do Exactly this. Therefore , I assume that the people who prefer git GUIs fall into 2 camps: - integrators, who essentially all they do all day is unfuck broken commits from a bazillion branches at the same time and an UI provides them with a much better understanding of whatever it is they're doing - people who cannot be bothered to remember the 5 git commands you actually need to do your job on a daily basis Personally I am a lowly git user. I use and know as few commands as possible to be able to do my work. Therefore, using the CLI is just simpler and easier. I add, commit, push, pull, clone, merge and checkout. That's I think pretty much the extent of my interaction with git and I like it this way. When I need to do more it means somebody thought they know better and they hosed up the backup git repo and now I have to fix it. Turns out they do not know better and now I have to find on google how to unfuck their fuckup. Sigh: simple is better. Always.
|
# ? Oct 5, 2019 00:55 |
|
The first reason I most often use a git gui (in jetbrains ide): I get in the zone for two hours and don't commit or I'm just working on a change with a lot of cross-cutting concerns. 1. My gui shows the dozen changed files. 2. I click a file, it shows the changes in a nice way with a diff. 3. I pick the changes from each file I want in a commit by clicking a checkbox. 4. Make a commit of those changes. 5. Go back to step one until I've put all the work for the past two hours into nice logical and atomic commits. The second reason I most often use a git gui: Three-way merging (not exactly git exclusive, but I like it so much). 1. Pull changes from remote. 2. Have changes in same file locally. 3. Get a three pane layout with my changes on the left, remote changes on the right, merge results in the middle. 4. Each change on left and right has a nice flow-y-ish graphic visual indicating where the change would fit into the merged result. 5. I click a button to move a change from either side into merge result or discard the change. 6. Revel in the majesty. I've spent extensive time doing both of these via command line and stuff like vim and the like. The graphical way of doing it is just better and less prone to mistakes for me.
|
# ? Oct 5, 2019 01:18 |
|
Git Koansquote:A Python programmer handed her ~/.gitconfig to Master Git. Among the many lines were the following:
|
# ? Oct 5, 2019 01:19 |
|
Pentecoastal Elites posted:git CLI is easy because there's only a small handful of things you need to actually remember, then when you run into an issue there's a stackoverflow page that tells you exactly what you need to do No one thinks it's hard to commit a single file change or any of the few straightforward things. The problem is that the basic things you need to step out of those basic things 5% of the time and when you google how to do them, you end up copy pasting stuff you don't understand because the commands to do the things you need to do just don't make any sense. So yeah, if you ignore the bad stuff then it's all good.
|
# ? Oct 5, 2019 01:22 |
|
Thermopyle posted:
4-way merging (or the 3-way merge conflict style built in to git) is awesome My side The common ancestor of both Their side (The merge result, if 4-way) It makes it so much easier to resolve complicated conflicts Choosing which changes in each file to stage/commit in a GUI is a really good thing though (combined with interactive rebasing via GUI too, jetbrains has this now)
|
# ? Oct 5, 2019 05:02 |
|
tak posted:4-way merging (or the 3-way merge conflict style built in to git) is awesome I love 3 way merge but sometimes kdiff is really unclear about which window is which source and it takes me a minute to get my bearings. I have definitely hosed up a merge enough to hose a branch before as a result back at epic where I had to use svn. BTW thanks to whoever mentioned tig, I love it
|
# ? Oct 5, 2019 05:16 |
|
jit bull transpile posted:I love 3 way merge but sometimes kdiff is really unclear about which window is which source and it takes me a minute to get my bearings. I have definitely hosed up a merge enough to hose a branch before as a result back at epic where I had to use svn. Yeah I don't miss that at all about svn p4merge is excellent and works fine with git, there are lots of others that can do 4 way merges though
|
# ? Oct 5, 2019 06:41 |
|
I can't believe that the complaints about git's user interface are about the naming of revert and cherry and not things like `git push remote :branch` and `git rerere`
|
# ? Oct 5, 2019 11:02 |
|
tak posted:Yeah I don't miss that at all about svn We are slowly moving from perforce to git and it is a good thing, but I need to ask if we will still be able to use p4merge for diffing and merging, or find another tool that presents things the same way, because the presentation of diffs built in to Visual Studio is lacklustre IMO.
|
# ? Oct 5, 2019 12:38 |
|
You can get p4merge as a standalone free tool from choco or whatever.
|
# ? Oct 5, 2019 12:52 |
|
comedyblissoption posted:You can get p4merge as a standalone free tool from choco or whatever. That's good to know. That was pretty much the only thing I had reservations about.
|
# ? Oct 5, 2019 14:35 |
|
most of the problems people have with git are social, rather than technical, problems. if you're constantly cursing the tides while doing 4-way merges then maybe you should look at the process rather than curse the tools.
|
# ? Oct 5, 2019 15:24 |
|
Seems like that one could be better phrased as a Koan
|
# ? Oct 5, 2019 16:35 |
|
I'd love to understand the rationale of why Git uses the term "checkout" to mean "set working branch", instead of what it means in every other version control system that uses the same term: "take an exclusive lock on a file for editing". That just seems cruel, and it causes new users no end of confusion. Just don't use the term "checkout". It's already defined in the VCS world; you don't have something equivalent. That's fine.
|
# ? Oct 5, 2019 17:16 |
|
Uhh, the real horror is that this is year 2019 and there are still people who remember being subjected to version control systems with exclusive checkouts as a dominant development model, despite it being obsolete since like 30 years ago.
|
# ? Oct 5, 2019 17:29 |
|
New Yorp New Yorp posted:I'd love to understand the rationale of why Git uses the term "checkout" to mean "set working branch", instead of what it means in every other version control system that uses the same term: "take an exclusive lock on a file for editing". That just seems cruel, and it causes new users no end of confusion. Just don't use the term "checkout". It's already defined in the VCS world; you don't have something equivalent. That's fine. In SVN "checkout" is roughly "clone", so I'd say there was already tenuous agreement on what it meant before git.
|
# ? Oct 5, 2019 17:31 |
|
I think it’s funny that most of the complaints about git that I see in this thread could be solved with ten minutes and setting some aliases or remembering some things The only thing I remember sucking is dealing with which parent is which when trying to revert a merge. I’m sure there’s other stuff that’s user-hostile that I’m forgetting, but I probably never had to use most or all of it 🤷♀️
|
# ? Oct 5, 2019 17:40 |
|
Achmed Jones posted:remembering some things "It's easy to avoid all the gotchas if you just remember them all"
|
# ? Oct 5, 2019 18:09 |
|
Achmed Jones posted:The only thing I remember sucking is dealing with which parent is which when trying to revert a merge. Why don't you just remember it?
|
# ? Oct 5, 2019 18:17 |
|
New Yorp New Yorp posted:I'd love to understand the rationale of why Git uses the term "checkout" to mean "set working branch", instead of what it means in every other version control system that uses the same term: "take an exclusive lock on a file for editing". That just seems cruel, and it causes new users no end of confusion. Just don't use the term "checkout". It's already defined in the VCS world; you don't have something equivalent. That's fine. I've never used a VCS where "checkout" means "take an exclusive lock on a file" and git is far from the only VCS I've used.
|
# ? Oct 5, 2019 22:00 |
|
Plorkyeran posted:I've never used a VCS where "checkout" means "take an exclusive lock on a file" and git is far from the only VCS I've used. You've never had to use something like VSS then. A VCS implemented as a file system (!)
|
# ? Oct 5, 2019 22:12 |
|
Plorkyeran posted:I've never used a VCS where "checkout" means "take an exclusive lock on a file" and git is far from the only VCS I've used. Okay, I'm wrong. Everyone uses the term to mean different things. So every version control system is wrong, clearly.
|
# ? Oct 5, 2019 22:16 |
|
New Yorp New Yorp posted:Okay, I'm wrong. Everyone uses the term to mean different things. So every version control system is wrong, clearly. My version control of new_result_paper_053.doc is superior to all of these, of course.
|
# ? Oct 5, 2019 22:17 |
|
OddObserver posted:Uhh, the real horror is that this is year 2019 and there are still people who remember being subjected to version control systems with exclusive checkouts as a dominant development model, despite it being obsolete since like 30 years ago.
|
# ? Oct 5, 2019 22:37 |
|
New Yorp New Yorp posted:I'd love to understand the rationale of why Git uses the term "checkout" to mean "set working branch", quote:“How should I change to a different branch?” asked the programmer.
|
# ? Oct 6, 2019 00:16 |
|
Volmarias posted:You've never had to use something like VSS then. A VCS implemented as a file system (!) I actually did use VSS at one job. At least with how they had it configured, checking out a file made it writeable but didn't acquire an exclusive lock by default (and in practice you never could acquire an exclusive lock because there was always that person who had the entire repo checked out).
|
# ? Oct 6, 2019 01:52 |
|
Ola posted:Why don't you just remember it? After doing it a couple times, I did.
|
# ? Oct 6, 2019 02:40 |
|
Thermopyle posted:"It's easy to avoid all the gotchas if you just remember them all" Most of these complaints are just nitpicks though, "I don't like the way that 'git cherry' is named" isn't a pitfall and is easily solved with an alias
|
# ? Oct 6, 2019 07:02 |
|
|
# ? Jun 8, 2024 04:25 |
|
I briefly used VSS at some contracting thing. Almost every time I tried to check out a file, it was already checked out by someone who was on holiday so I had to ask some admin to force-decheckout it.
|
# ? Oct 6, 2019 07:08 |