Regarding unmaintained projects, usually my next step is to check recent PRs list or Network Graph page to see if there is some more active fork.
It probably depends on your goal, though. Whether you want to know "the (relative) age of something", or "the point in time of some event". I think most often the first is the usecase, which is probably why most projects choose that.
Sometimes a library can just be done.
Providing a timestamp gives you the same information with higher precision _provided you know when now is_. I can tell you what day of the week it is, but not what the day of the month it is. Sometimes day of the week even takes extra cycles.
Relative time tells me the order of magnitude since last update. Was it today (I can assume they have complete context) or yesterday (they probably need a little background to catch up).
Order of magnitude since last update is generally more useful to me than knowing the time since last update.
Actually I have, and then we all use GMT when communicating timestamps. But it's like another commenter mentions: yes, 'that commit from 2 hours ago' is still doable (though if it matters we communicate SHAs), but when it goes to 'a day ago' it doesn't really work out anymore.
Unless you have half a dozen commits from 2 hours ago, which is pretty common in active repositories. It's never been very hard for me to tell whether a time stamp was a month ago, a day ago, or a few minutes ago, but it's impossible to figure out the roughly what time the commit from "1 day ago" was.
With hours it's not so bad, but gets worse with longer time periods. I find it incredibly aggravating when services say "N days ago", or "N weeks ago", because this simply serves to obscure when an event actually occurred. Just give me the damn date and time in my local timezone!
"North" is technically correct but an absolute reference, just like a date.
While "Left" is relative just like "two hours ago"
With the relative reference you don't need to know which direction you are heading, or what time it is right now.
I personally take longer to parse an ISO formatted timestamp when all I want to know is age (i.e. difference from now). An "x [unit] ago" is much faster for me.
The absolute timestamp is probably more handy when I have other dates to compare it to, because I could line them up vertically and visually diff the digits.
I think it boils down to the fact that I don't have enough working memory to precisely memorize all numbers in a complete timestamp.
The problem also exists on HN. For example, in a discussion you might want to check who said something first. But if both comments say "3 days ago", then that's kinda difficult (unless you want to wait until one of them flips to 4 days ago).
Sure, if you're looking for a specific timestamp or something that happened 2 months ago, it's not useful and then I switch to the timestamp format.
Majority of the time I care about stuff like what happened today, yesterday just to get the rough idea.
"2 hours ago" might be fine enough. 2 days ago (instead of a longer "2 days 3 hours ago") maybe not, especially when I quickly want to see what's freshest or oldest and everything just says "2 days ago".
If I want to know the age of something, i want "x time ago" to quickly determine age. For many OSS projects this is nice because I can quickly see how active a project is/has been.
This thing has the advantage that you don't need to know the current time and subtract the timestamp from it to see it is 2h old.
For a lot of other stuff it doesn't make any sense at all. E.g. when you have a lot of things all with "2 hours ago" the precision is too low, when you are more interested in the time of day something was happening etc.
That's not how I want to work, and it's not how I want other people to work in a repository I'm using. I know 'I don't have to use them then I can just use the git subcommands', but that's not the point, it's a big signal ('90% of the time the above commands will have you covered.') about the motivation/angle/philosophy of the project that doesn't match my attitude towards git at all.
Which is a shame, because the autocomplete stuff looks really nice.
I do not understand how people can live with only a single line for the commit message. For a new feature, I need to provide some details what is added and how it can be used. For a bugfix, a single line is rarely enough to describe the problem, what you changed, and why this change solves the problem.
Writing good commit messages is an essential part of using a version control system with a team. When trying to make the git interface easier, this should not be dumbed down. I would rather expect the tool to provide assistance with the usual format of a short subject and a body for a longer explanation.
Most of them would benefit from learning to actually use it, but this is unfortunately niche.
I often go through list of recent commits and rebase them before sending PRs. That way, I save a bit of time not having to switch contexts with code and commit messages.
I personally like this format more because it lets you both be "dirty" in your branch writing commits for yourself, and not have to use amends/rebasing. I can see how it would be annoying for someone that does all the digging on the terminal through git log and blame, but we all use gitlab instead.
* promotes bad history patterns
* makes it easier to miss when unwanted changes are included
* makes it easy to accidentally push
...I see it as a good thing to have new UI patterns tried out. If nothing else, it can act as a counterpoint to show that the complexity of the Git CLI actually is necessary for some of the flexibility.
EDIT: I see now that "bit save" encourages using single-line commit messages, which to me promotes bad history patterns. That's too bad.
If sync does pull and rebase then that’s very nice.
`git pull` does that fine for me. (`pull.rebase true` in git config)
Luckily bit doesn’t do anything that would prevent someone from using git on the same repo. You can co-exist.
I’ll make this prediction based on decades of observations:
1. There will be many projects like this.
2. Eventually one will win out and the others will fade.
3. The winner will be the one that focused on a particular audience AND successfully ignored so-called experts that didn’t see the need for such a project.
4. After one tool wins out, the nay-sayers start to adopt it. Forums like HN get flooded with posts about how “I wish I had tried it sooner”.
But seriously... if you don’t need this kind of tool do the other 98% of the world develop it in peace.
Having used most SCM since RCS days, I get to differ, but since I am left without another option, so just like with C and JavaScript, I suck it up and get the job done by whatever means.
- rant mode off
Thanks for bringing a bit more of security into the IT world with a Go version though.
SVN is much better in these regards.
The most popular git questions on stackoverflow tells a story on which tasks are more complex on git because you have to know all the internal tricks.
It includes Go and sounds like Git.
Aside from that, I'm going to persist with this for a little while and see how it goes, the git interface does bother me.
I could run gnome terminal but then I have to configure X11 and that’s a pain.
Thanks, this looks awesome.
Still not sure how much of a niche WSL is, but it’s my daily driver.
[1]: https://www.mercurial-scm.org/repo/hg/log?rev=keyword%28%27g... [2]: https://www.mercurial-scm.org/wiki/GitExtension
Does anyone know if there's a generic way to provide this for all tools with CLI's with help text? What about being able to parse a Programmable Completion file.
I don't know much about this stuff, but the thought popped into my mind.
Autocomplete popovers / CLUIs seem like a really natural way to enhance discoverability in the terminal.
i made a typo and i can't backspace to delete it.
Super cool and thanks for this! I commented a few weeks ago on how it'd be nice to have a git CLI that actually helps you find the command you're looking for because you don't really know what to search for unless you know what command to use with git. It's sort of this chicken-and-egg problem that this seems to help solve.
What does this mean? Especially for a git client?