Re: Newbie grief

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/1/12 14:05 , Randal L. Schwartz wrote:
"Rich" == Rich Pixley<rich.pixley@xxxxxxxx>  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?

Yes, 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.

Sure. You can fetch other branches, (unless you happen to be checked out from them). But you can't fetch to master if you're checked out from master.

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

I disagree. They only even need branches if they're different. And the branches can be extremely lightweight. With names, I have to manually track a geometric explosion of extraneous branches and branch names, just in order to be able to sync changes back and forth. That's all work that could be managed automatically by the source code control system.

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.

Again, yes, you can push to other branches. You could push to other repositories too. That's not really what I'm talking about.

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.

I hear that that's what you think. But really, I'm asking for automation to replace the automation I already have in preexisting source code control systems.

There are a number of situations, like the ones I've described, that git just plain doesn't cope well with. Other source code control systems have, and going backwards seems silly and frustrating.

My particular situation is that I'm developing a "feature" and to do that, I need to be testing on multiple machines. Tens of them. I really don't want hundreds of named branches that I must manually merge from constantly.

With mercurial or monotone or even subversion, it's trivial. Branches can be shared. And pushing between them is similarly trivial. It can be done in seconds. With git, it takes hours to do all the manual moves, track the manual moves manually, verify that they've been done correctly, and then later it takes hours to correct the ones that were done incorrectly because they were all done manually or because one machine happened to be down at the time and so got the changes in the wrong order, or whatever.

I'm not asking for anything new. I'm asking for something that's as capable as what we've had for years now.

--rich
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]