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

Re: Newbie grief

From
Randal L. Schwartz <merlyn@stonehenge.com>
Date
May 1, 2012, 21:05 UTC
Message-ID
<86mx5rmx32.fsf@red.stonehenge.com>
In-Reply-To
<4FA04D02.6090702@palm.com>
>>>>> "Rich" == Rich Pixley <rich.pixley@palm.com> writes:

Rich> I want to be able to fetch changes to the branch I currently have checked out. Rich> Git blocks this because it doesn't know how to cope with the working directory Rich> in that situation.

It does? I can always "git fetch origin" in my repo, and the remote branches are in "origin/master, origin/foo, origin/bar". Totally separate from my working tree.

If I want to *examine* them, I can make a WIP commit, or use "git stash", and then check them out headless:

  git stash save
  git checkout origin/master
  ## examine
  ## now go back
  git checkout master
  git stash pop
and now I can see what the upstream looks like.  Or just diff them:
  git diff ..origin/master

Rich> Merging is straightforward. Even updating, (checkout), is fairly Rich> straightforward. But the insistence on a single tip means that if Rich> I commit directly to a non-tip commit, git doesn't know what to do Rich> with the branch pointer. If it leaves it at my commit, then the Rich> other changes are essentially orphaned. If it leaves it at the Rich> other changes, then my commit is essentially orphaned. While it's Rich> probably possible to force git to do this anyway, including Rich> orphaning one set of changes, doing so is of limited value since Rich> the git interface makes the assumption that branches have a single Rich> tip anyway.

So, make a set of related names for your branches. It's better with names anyway.

Rich> Pushing is blocked in git. Git simply refuses some push requests Rich> which have obvious and fairly straightforward semantics.

 git push master:from-merlyn/master

And now someone can look at "from-merlyn/master", and know that it's from me, and related to master, and either incorporate it into the real master, or cherry-pick from it, or whatever. Solved.

Rich> You and I want to share a branch and we each have local, Rich> unattended cache/mirror repositories that we would like to use to Rich> pass data between us. This doesn't work in git because the first Rich> time you and I make simultaneous changes, whether they collide or Rich> not, the unattended repositories become wedged. They each refuse Rich> to talk to the other until someone manually unwedges them.

No, you do it like above. Some *person* has to sign off the merge each time. But we can share the unmerged changeset through other branches.

Rich> I want that if you and say, Sitaram commit conflicting changes to Rich> a shared branch, it's easy for me to recognize that the conflict Rich> exist and easy for me to resolve that conflict in my own Rich> repository. I want the source code control system to keep track Rich> of those things, show them to me/us, and to track and show my Rich> resolution to you. This stuff should all be automatic. It Rich> shouldn't require explicit testing, manual pulling, nor explicit Rich> discussion between the three of us. It shouldn't prohibit that Rich> either, but it shouldn't require it.

You're asking a lot of an automated system. I think you're trying to get a system to replace the communication you should be doing as a developer.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.posterous.com/ for Smalltalk discussion
Previous: Rich PixleyNext: Junio C Hamano
Message 15 of 100 in “Newbie grief”
  1. Rich PixleyApr 30, 2012
  2. Seth RobertsonApr 30, 2012
  3. Rich PixleyMay 1, 2012
  4. Junio C HamanoMay 1, 2012
  5. Rich PixleyMay 1, 2012
  6. Sitaram ChamartyMay 1, 2012
  7. Ted Ts'oMay 1, 2012
  8. Sitaram ChamartyMay 1, 2012
  9. Rich PixleyMay 1, 2012
  10. Michael WittenMay 1, 2012
  11. Rich PixleyMay 1, 2012
  12. Jakub NarebskiMay 2, 2012
  13. Randal L. SchwartzMay 1, 2012
  14. Rich PixleyMay 1, 2012
  15. Randal L. SchwartzMay 1, 2012
  16. Junio C HamanoMay 1, 2012
  17. Rich PixleyMay 1, 2012
  18. Randal L. SchwartzMay 1, 2012
  19. Rich PixleyMay 1, 2012
  20. Michael WittenMay 1, 2012
  21. Philip OakleyMay 1, 2012
  22. Hallvard Breien FurusethMay 3, 2012
  23. Rich PixleyMay 3, 2012
  24. Hallvard Breien FurusethMay 3, 2012
  25. Hallvard Breien FurusethMay 3, 2012
  26. Rich PixleyMay 3, 2012
  27. Junio C HamanoMay 3, 2012
  28. Rich PixleyMay 3, 2012
  29. Randal L. SchwartzMay 3, 2012
  30. Junio C HamanoMay 3, 2012
  31. Felipe ContrerasMay 4, 2012
  32. Felipe ContrerasMay 4, 2012
  33. Michael WittenMay 4, 2012
  34. Rich PixleyMay 1, 2012
  35. Randal L. SchwartzMay 1, 2012
  36. Rich PixleyMay 1, 2012
  37. Andreas EricssonMay 1, 2012
  38. PJ WeisbergMay 1, 2012
  39. Rich PixleyMay 3, 2012
  40. Nathan GrayMay 3, 2012
  41. Rich PixleyMay 3, 2012
  42. Randal L. SchwartzMay 3, 2012
  43. Rich PixleyMay 3, 2012
  44. Mark BrownMay 4, 2012
  45. Rich PixleyMay 4, 2012
  46. Jakub NarebskiMay 4, 2012
  47. Mark BrownMay 4, 2012
  48. Hallvard Breien FurusethMay 2, 2012
  49. Michael WittenMay 2, 2012
  50. Hallvard Breien FurusethMay 3, 2012
  51. Randal L. SchwartzMay 3, 2012
  52. Michael WittenMay 3, 2012
  53. Hallvard Breien FurusethMay 3, 2012
  54. Michael WittenMay 3, 2012
  55. Rich PixleyMay 3, 2012
  56. Ted Ts'oMay 3, 2012
  57. Felipe ContrerasMay 1, 2012
  58. Rich PixleyMay 3, 2012
  59. Rich PixleyMay 3, 2012
  60. Andreas EricssonMay 4, 2012
  61. Stephen BashMay 4, 2012
  62. Mark BrownMay 4, 2012
  63. Felipe ContrerasMay 4, 2012
  64. Rich PixleyMay 1, 2012
  65. Jan KrügerApr 30, 2012
  66. Rich PixleyMay 1, 2012
  67. Philippe VaucherMay 2, 2012
  68. Seth RobertsonMay 1, 2012
  69. Rich PixleyMay 1, 2012
  70. Michael WittenMay 1, 2012
  71. Junio C HamanoMay 1, 2012
  72. Michael WittenMay 1, 2012
  73. Rich PixleyMay 1, 2012
  74. Rich PixleyMay 1, 2012
  75. Rich PixleyMay 3, 2012
  76. Ronan KeryellMay 3, 2012
  77. Junio C HamanoMay 3, 2012
  78. Ronan KeryellMay 3, 2012
  79. Rich PixleyMay 3, 2012
  80. Rich PixleyMay 3, 2012
  81. Illia BobyrMay 4, 2012
  82. Nathan GrayMay 4, 2012
  83. Michael WittenMay 4, 2012
  84. Junio C HamanoMay 4, 2012
  85. Carlos Martín NietoMay 4, 2012
  86. Junio C HamanoMay 4, 2012
  87. Junio C HamanoMay 4, 2012
  88. Nathan GrayMay 4, 2012
  89. Illia BobyrMay 4, 2012
  90. Rich PixleyMay 4, 2012
  91. Rich PixleyMay 4, 2012
  92. Michael WittenMay 4, 2012
  93. Andrew SayersMay 4, 2012
  94. Jérôme BenoitMay 4, 2012
  95. Felipe ContrerasMay 4, 2012
  96. Junio C HamanoMay 4, 2012
  97. Felipe ContrerasMay 4, 2012
  98. Rich PixleyMay 4, 2012
  99. Felipe ContrerasMay 4, 2012
  100. Sitaram ChamartyMay 2, 2012

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.