Is there an equivalent of `git status`?

A graphical user interface would show certain basic information at a glance, always visible. A shell tool can’t, of course. git status solves that problem. A pijul status would be convenient to that effect as well:

  • current channel
  • remote repo
  • files that are not tracked
  • files that are changed but not added
  • files that are added but not recorded

git status also shows which commands should be used to undo such changes. It’s an important part of my workflow. The working directory, tree, and pristine carry a lot of state, and a status command would help people not to accidentally miss anything.

2 Likes

Would it be better to discuss potential tooling that would benefit from a status-like command here, or in a topic dedicated to that tooling, and any feature requests it may generate? I’ve got something I want to work on inspired by cruft, but with pijul instead of git, and a somewhat different workflow. For this kind of automated, change the repo state tooling, it would be really helpful to have an equivalent of the command that cruft uses, git status --porcelain, which outputs a minimal list of filenames that don’t correspond to the state of the repository head, and are not ignored.

1 Like

That would be really helpful indeed. I’m not making much progress on this question at the moment, because I’m changing the backend in Pijul, and that is a massive job.

I just now put together that it’s probably a smaller conceptual leap to talk about Darcs interface features that sound useful (or have been useful, if you have Darcs experience). So, I think what I would like is some equivalent to darcs whatsnew --look-for-adds.

I had more I was going to say here, before I realized that I have some related issues about Pijul’s existing commands that I think should be discussed elsewhere. I’m not sure whether “here are these subcommands that I think should act differently” is best in a new thread here, on the Nest, in Zulip, or somewhere else.

2 Likes

More than the smaller leap, while it’s been a long time since I’ve used it given the prevalence of git, the darcs interface is simply excellent.

IIRC, darcs whatsnew is similar to git status.

1 Like

I always do git status first, and then either git diff file or just git diff if there aren’t many files. But more often I just do an interactive git add -p instead of a diff and never use diff.
I guess, if diff and status are the same command, the default should be the short version, and the long version should require an additional flag (--long?)

I believe this is now answered by

pijul diff --untracked

With

pijul diff --untracked --short

Giving you a most of what git status gives you.

3 Likes

I absolutely agree with this: pijul change is not at all discoverable; I just spent half an hour trying to figure out how to do the equivalent of git show. Verbs should describe what they do.

2 Likes

I agree, the staging area is one of git’s best features. One often wants to record just a part of a diff, for example when you are making some edits to a file and discover an unrelated change that you want to make; it’s best to make both changes at once but persist them separately.

This, I completely agree. :ok_hand:

As for Darcs, the darcs whatsnew seems so intuitive, one doesn’t have to read the doc.

1 Like

I guess a GUI would be lovely at this point. I don’t approach other VCS without using bazaar-explorer, as it presents everything up-front and changes in realtime, rather than relying on my keeping a mental model of what I think is happening, which may not match what is.

However assuming that is some way off, brz status gives what is for me a very important output. I find the way breezy/bazaar tracks files probably more intuitive than git, and this follows pijul’s model, that some files will be tracked and have changes recorded automatically, rather than constantly having to add everything into the area by default. Therefore having a summary of what is up with each file that is not exactly as it was last commit, is really useful for knowing the state of the system as a whole:

[🍇] user@host /b/S/I/P/repo> brz status

added:
  a/new/file
modified:
   some/path/foo
unknown:
  some/other/path/bar
moved:
  some/other/path
kind changed:
  Notes.md
[🍇] user@host /b/S/I/P/repo>
2 Likes