note: I haven’t had time to read in depth some of the responses, but one of them suggesting “pijul isn’t for you” strikes me as oddly positioned (if not hostile).
It doubly strikes me as odd that the usecase for e.g., checking out the repo’s textual state at some point, whether that is semantic or temporal or some such other point, would be doubted as a normal/expected procedure. Something like this occurs on a weekly bi-weekly basis at my $DAYJOB and also $PERSONAL_PROJECTS, so either my dayjob and personal projects are weird (I don’t think so, and my coworkers definitely wouldn’t either), or it’s weird I have to explain to someone why this kind of operation might be common.
For example, as @joyously noted, it seems pretty reasonable to e.g., want to look at a change, and see if a regression occured, or for example, I see this just about everyday, someone says: “I’ve checked out change abcd123456, built the code, and the issue is not present”. Is the suggestion here someone wanting to do this should not use pijul? This is standard issue debugging in both large and small projects when trying to narrow down the scope of some regression; dismissing it outright, without for example, a suggestion on how one might accomplish it again, strikes me as odd.
Now, perhaps this viewpoint is highly git-centric, I won’t doubt that. But you’ll notice I gave an example of what I was trying to do, and asked what the pijul colloquialism for this was.
So: is there not a pijul colloquialism for this? What is someone supposed to do if e.g., some change introduced at some point in time caused a regression, and we want to find out, just by going back in time, where we might have introduced it?
And let me be clear: the answer here will be unappealing, I would posit, for most prospective newcomers and curious onlookers or otherwise generally brave people wanting to try a new VCS, that such and such is not possible because of theory, or an answer something like, you shouldn’t think about it that way; while this might be interesting, for these people, the VCS is likely dead on arrival for them, since they want to use it to do, well practical things, like browse through a history, and if encountering some bug, goto some point in history that doesn’t have that bug, and narrow it down from there (i.e., bisection).
I’ve been told that tags are the more appropriate solution for this, and maybe so (indeed, I filed pijul/pijul - Discussion #632 - pijul git appears to drop git tags precisely because of this, because oops, it appears to drop git tags, so now we can’t explore any history if tags are the pijul way to do this).
Even still, I find tags an unsatisfying suggestion here; sometimes I just want to isolate one particular patchset/change; it feels strange for someone to tell me that this is the incorrect viewpoint, since pijul change Z4ZNMHSKLDAQ2MQEWW3XZP3AJ356DYWCRAJSAXFLTPSKRGD5BYCQC
shows me an isolated change; is it someone unsound for me to ask how to revert the state of the repo to that point. And please don’t tell me there isn’t a point; there is a point, pijul log
shows me the that point as the first entry, and when i invoke it again, it’s consistently there. If it’s some non-deterministic set of patches, I’d suggest the log subcommand non-deterministically display the list of results
Again, back practical examples, I could write:
pijul unrecord Y37IP2CFY3HQZR4FMGQ2IGDMQ2BEU2EKVQTYAZAGNIKMAQEC5PJQC 6CV43X76UVGBOUOBBPVF7T3FL6XNRO27KW5SRNSVHFT3G7HXEW7AC MTC5LQENSV3IWRV63M7AKUP4YLCCWNDFEXGPDPJPNCZHKPYA2CHAC
which according to my pijul log are 3 changes in my repo preceding the patch Z4ZNMHSKLDAQ2MQEWW3XZP3AJ356DYWCRAJSAXFLTPSKRGD5BYCQC
.
So, I’m asking, why isn’t there a subcommand, for example (non normative) pijul checkout Z4ZNMHSKLDAQ2MQEWW3XZP3AJ356DYWCRAJSAXFLTPSKRGD5BYCQC
which perhaps resolves to:
pijul channel tmp-Z4ZNMHSKLDAQ2MQEWW3XZP3AJ356DYWCRAJSAXFLTPSKRGD5BYCQC
pijul unrecord Y37IP2CFY3HQZR4FMGQ2IGDMQ2BEU2EKVQTYAZAGNIKMAQEC5PJQC 6CV43X76UVGBOUOBBPVF7T3FL6XNRO27KW5SRNSVHFT3G7HXEW7AC MTC5LQENSV3IWRV63M7AKUP4YLCCWNDFEXGPDPJPNCZHKPYA2CHAC
i would be be pretty satisfied. Specifically, in just the context I was interested, just so this is clear, I’m talking about automating computer automate-able operations to make one’s life easier. If this kind of operation is somehow theoretically impossible in some general sense, then yes, perhaps pijul isn’t for me