Re: simple cvs-like git wrapper
- From
- Ed S. Peschko <esp5@pge.com>
- Date
- Jan 30, 2008, 22:52 UTC
- Message-ID
- <20080130225254.GC9612@venus>
- In-Reply-To
- <20080130040002.GM24004@spearce.org>
On Tue, Jan 29, 2008 at 11:00:02PM -0500, Shawn O. Pearce wrote:
Show 8 quoted lines
> "Ed S. Peschko" <esp5@pge.com> wrote: > > In our case, our code is tied to a database and a database instance. An > > environment equals attachment to a given oracle SID. If someone is out of sync > > with other people's changes, then that person's environment is wrong. > > Surely not every single code change impacts the database schema > and meaning of column values? If that were truely the case then > I'd say you have bigger issues to tackle.
well, no, but I'd say 80-90% of the changes we have are ones that we want to instantly share with everybody. I was thinking that ones that we didn't would be prefixed, as in:
git-branch exp-<change_name>
and those would need to be renamed explicitly to become 'mainline' branches before they were merged..
You've got some good points, and my original intent was to answer them point-by-point, but suffice to say:
1. I was hoping to make each branch correspond to a work request, that would be tracked for SOX. We also need to track the changes in mercury interactive, not git, so I've got some challenges there in making a wrapper to handle this.
2. A single, linear history on the remote end wouldn't be easy for reporting purposes.
3. A single linear history on the remote end wouldn't support the rare cases where I *do* want a single change.
I guess my scheme's workability depends on how effective git is at doing merges from branch to branch, and how good it is at fixing conflicts in a way that is simple for the user. In CVS, I get:
>>>>>
...
=====
...
<<<<<when a conflict occurs, and you need to resolve that conflict before re-committing again. Does git do a similar thing?
Also, with git-ls-remote - is there a way to see more information about the remote branch rather than just its name, ie: can you say:
git-ls-remote -l --heads origin
to get a list of changes in the order they were made? And is there a command that does what I want, ie:
git pull origin --all
Which pulls all branches from origin and merges them into the current branch in an intelligent way, ie: by order in which the branches were committed, or even:
git pull origin --re: '^(?!exp)'
which pulls in all branches matching a given regular expression (in this case, not matching 'exp' at the beginning..
Ed