git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Concept question about push/pull stashes
@ 2021-09-01  7:44 c.buhtz
  2021-09-01  9:23 ` Philip Oakley
  0 siblings, 1 reply; 2+ messages in thread
From: c.buhtz @ 2021-09-01  7:44 UTC (permalink / raw)
  To: git

Hello,
my question has to goals. I want to understand the design decisions 
behind a (missing) feature and and wan't to explore the needs of other 
users before I start to implement something.

There is no usual way to exchange stashes with other repos/users. 
Stashes are code snippets that are unfinished and not clean enough to 
commit them anywhere not even in another branch.

Why? What is the concept behind this? I am sure this was well thought. I 
just try to understand.

A feature like this is often asked by users when you asked the search 
engine of your trust.

One workaround is to simply commit the stashed code, push/pull it, 
checkoutit into the other repo and delete the last commit.

The other workaround is to create a patch-file from a stash. But then 
the question is how to exchange this file?

Why not use the git infrastructure itself?

I have workaround in my mind. I couuld use a script wich creates patch 
files for each existing stash and commit them into the repo. Thats all. 
To keep the repo "clean" the path files could be archived into a hidden 
(dotted filed) tar file. Or the tar file could be stored inside the 
".git" folder if there is a way.

I am interested in your thoughts about this.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Concept question about push/pull stashes
  2021-09-01  7:44 Concept question about push/pull stashes c.buhtz
@ 2021-09-01  9:23 ` Philip Oakley
  0 siblings, 0 replies; 2+ messages in thread
From: Philip Oakley @ 2021-09-01  9:23 UTC (permalink / raw)
  To: git

This is a bit of 30,000ft thinko.

On 01/09/2021 08:44, c.buhtz@posteo.jp wrote:
> Hello,
> my question has to goals. I want to understand the design decisions
> behind a (missing) feature and and wan't to explore the needs of other
> users before I start to implement something.
>
> There is no usual way to exchange stashes with other repos/users.
> Stashes are code snippets that are unfinished and not clean enough to
> commit them anywhere not even in another branch.

I suspect that this "not even in another branch" is where the confusion
may arise. I've always understood git branches to be lightweight and
ephemeral. We usually fail to take that mental model to its rightful
conclusion.

While some branches are rock solid release branches, that does not
preclude their use for whimsical, unfinished snippets of code. There can
be reticence to create local wip branches (a trap I often fall into)
when we should be far more free with our branches - they take up no space!

Ultimately stashes are branches, their _extra_ capability is that they
can handle un-staged changes and other _local_ changes to allow for
interruptions.

>
> Why? What is the concept behind this? I am sure this was well thought.
> I just try to understand.
>
> A feature like this is often asked by users when you asked the search
> engine of your trust.
>
> One workaround is to simply commit the stashed code, push/pull it,
> checkoutit into the other repo and delete the last commit.

If the commit was on a new [wip] branch then a later branch deletion and
`gc` will clear it.

Isn't this an XYproblem for how to exchange snippets? And how to
decide/indicate what should be in the snippet?

>
> The other workaround is to create a patch-file from a stash. But then
> the question is how to exchange this file?

`send-email` ?
>
> Why not use the git infrastructure itself?
>
> I have workaround in my mind. I couuld use a script wich creates patch
> files for each existing stash and commit them into the repo. Thats
> all. To keep the repo "clean" the path files could be archived into a
> hidden (dotted filed) tar file. Or the tar file could be stored inside
> the ".git" folder if there is a way.

The stash does manage to combine the selection of the code change files
and creation of a branch [aka stash]. Maybe `commit` needs a --wip
option that will create the branch while adding the selected files.  The
'transmission' method would also need resolving as there are too many
ways folk interact these days - we already have patches, tar files,
remote push/fetch, then there will be web browsing methods..

>
> I am interested in your thoughts about this.

There is always (after checking the manual) `git stash branch
<branchname> [<stash>]`  - not used it myself, so it may not do what I
think I read.. Sounds like it needs combining with an initial `stash
push` to allow the new branch (containing the stash snippet) to be
exchanged using the regular methods for on-branch code.

-- 
Philip

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-09-01  9:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-01  7:44 Concept question about push/pull stashes c.buhtz
2021-09-01  9:23 ` Philip Oakley

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).