git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Working copy revision and push pain

From
JWJonathan Watt <jwatt@jwatt.org>
Date
Mar 23, 2008, 17:24 UTC
Message-ID
<47E6923E.1050904@jwatt.org>
In-Reply-To
<200803231720.44320.johan@herland.net>
Johan Herland wrote:
Show 10 quoted lines
> I'm starting to think it's worth changing the default behaviour of push as follows:
> 
> Upon receiving a push into a non-bare repository, if the working copy is on the same branch as is being pushed, then refuse the push with a helpful message describing why the push was refused, and how to resolve this issue (i.e. referring to the tutorials you mention).
> 
> This would:
> - Not clobber the working copy
> - Tell newbies what happened and why
> - Hopefully make this issue pop up less frequently
> - Not affect you if you only push into bare repos
> - Not affect you if you take care to never push into a checked-out branch
The detach-HEAD idea does all these things, but rather:
- There's no need to tell newbies anything
- It don't just reduce the frequency of the problem, it eliminates it
:-) Also,
- You eliminate the problem of git thinking the working copy came from a
  revision it didn't come from, and thus eliminate the "any commit will
  now overwrite the push" problem
- You can still write hooks to update the working copy if you like
- It's completely intuitive to anyone coming from Mercurial (and it's these
  people who are going to be doing the pushing into non-bare repositories,
  because that's the workflow they're familiar with)

It might also be a good idea to print a warning about the working copy needing to be updated or else committing changes will create a branch. That seems obvious, and if you're pushing into a checked out branch, you probably know that though.

> Of course, you should be able to set a config option to get the old behaviour, and from there you can write hooks to either update the working copy, or detach HEAD, or whatever you please.
> 
> Is this acceptable to people?
>From my perspective it makes things more complicated rather than simpler I'm afraid.

Johannes is apparently fed up of trying to explain to me why people want their working copy associated with the wrong revision so that their commits will overwrite the pull. ;-) If anyone else cares to give it ago I'd appreciate it, since I still don't see the utility.

Jonathan Hoping Johannes has a sense of humour...

Previous: Johan HerlandNext: Junio C Hamano
Message 25 of 32 in “Working copy revision and push pain”
  1. Jonathan WattMar 23, 2008
  2. Johannes SchindelinMar 23, 2008
  3. Jonathan WattMar 23, 2008
  4. Elijah NewrenMar 23, 2008
  5. Jonathan WattMar 23, 2008
  6. Elijah NewrenMar 23, 2008
  7. Johannes SchindelinMar 23, 2008
  8. Jonathan WattMar 23, 2008
  9. Johannes SchindelinMar 23, 2008
  10. Jonathan WattMar 23, 2008
  11. Johannes SchindelinMar 23, 2008
  12. Auto detaching head options (Re: Working copy revision and push pain)Jan Hudec, Mar 25, 2008
  13. Johannes SchindelinMar 25, 2008
  14. Jeff KingMar 25, 2008
  15. Junio C HamanoMar 26, 2008
  16. Auto detaching head options (update) (Re: Working copy revision and push pain)Jan Hudec, Mar 29, 2008
  17. Jeff KingMar 29, 2008
  18. Junio C HamanoMar 31, 2008
  19. Jeff KingMar 31, 2008
  20. Jeff KingMar 31, 2008
  21. Elijah NewrenMar 23, 2008
  22. Jonathan WattMar 23, 2008
  23. Johannes SchindelinMar 23, 2008
  24. Johan HerlandMar 23, 2008
  25. Jonathan WattMar 23, 2008
  26. Junio C HamanoMar 23, 2008
  27. Junio C HamanoMar 23, 2008
  28. Johannes SchindelinMar 23, 2008
  29. Johannes SchindelinMar 24, 2008
  30. Johan HerlandMar 24, 2008
  31. Johannes SchindelinMar 23, 2008
  32. Jonathan WattMar 23, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.