GStreamer switching to git

classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer switching to git

Rov Juvano
On Thu, Jul 10, 2008 at 01:59:11PM +0100, Jan Schmidt wrote:
> [...] we need to make sure that
> there is sufficient support (wiki pages, IRC people) to help people like
> me who've hardly used git before learn (at least) the equivalents for
> the CVS commands I regularly use.

That last thought has lead to a lot of git haters.  You may
want to forget everything you know about revision control--it
could save you a lot of frustration.  Git is more like 'cp -r'
+ diff + patch than CVS.

The index (sometimes --cached) has been a stumbling block for
many git newbies.  The index can seem like a major design flaw
until you grok it.

I find it helpful to think of the index as a second working
tree, as if I:
  # cvs $repo co $module index
  # cvs $repo co $module working-tree
then edit files in working-tree, copy them to index, and
commit from index.

It may take you a while to see the advantages of this approach.
And while there are options that allow you to ignore the index
(e.g. 'git commit -a'), just about every git command interacts
with it, so ignoring it can cause you unnecessary strife.

One advantage of this approach but a trouble spot for noobs
is the third class for files: untracked.  By default all files
are untracked.  Once added to the index via 'git add', the
file becomes tracked until it is removed from the index via
'git rm'.  And like CVS, files can also be explicitly ignored.
With the above 'two working tree' analogy, 'git add' acts
like 'cp -r' from the working-tree into the index and 'git rm'
like 'rm' from the index and working tree.

Since most commands ignore untracked files, this can trip up
those who try to ignore the index.  This can be particular
troublesome with 'git diff'.

With nothing staged, the index is identical to HEAD giving
the false impression that 'git diff' defaults to diffing
against HEAD--wrong.  To diff against against HEAD, use
'git diff HEAD' but...

It also does not diff against the index, because it ignores
untracked files.  'git diff' defaults to showing changes the
working tree makes to files in the index.  Use 'git status'
to see which files have changed, whether staged, tracked, or
untracked.  Similarly, 'git diff <tree>' shows the changes
the working tree makes to files in the referenced tree, again
ignoring untracked files.

To diff the index against a tree, use 'git --cached <tree-ish>'.
When diffing two trees (e.g. the index and HEAD), untracked
files in the working directory are, of course, irrelevant.

Because most git commands interact with the index, understanding
it can save you a lot of heartache.

If the index trips you up, read the section "The Workflow"
of chapter 9 "Low-level git operations" in the git manual.
It goes into painstaking detail on how git uses the index.
Understanding the diagram at the end of this section can go
a long way towards grokking the git.

Other documentation I recommend:
  the documentation that comes with git,
  'git help <command>'
  GitWiki: (http://git.or.cz/gitwiki)
  Git Magic: http://www-cs-students.stanford.edu/~blynn/gitmagic/
  GitCasts http://www.gitcasts.com/ (particularly "RailsConf Git Talk")

Soon you'll know 50 ways to reference a commit and you'll
understand why git is called stupid.  Then you'll discover
'git rebase --interactive'.

--
rovjuvano


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer switching to git

Ole André Vadla Ravnås
In reply to this post by Sean Estabrooks
On Thu, Jul 10, 2008 at 2:10 PM, Sean Estabrooks <[hidden email]> wrote:

> On Thu, 10 Jul 2008 13:54:32 +0300
> "Ole André Vadla Ravnås" <[hidden email]> wrote:
>
>> I'm aware that things are in heavy development, and that's really
>> promising. However, for those of us stuck doing GStreamer development
>> on this broken platform it's less of an option to put our current
>> efforts on hold, or reduce our productivity by having to fix bugs in
>> tools that aren't quite there yet. There's certainly enough
>> interesting problems to solve with the code itself on this platform,
>> and personally I'm already bogged down with maintenance of another
>> build system (because autotools isn't usable for day-to-day
>> development on Windows), and introducing even more tools that aren't
>> there yet on the portability-side will just make things even less
>> productive.
>
> Git is a healthy project with lots of active development so things are
> improving all the time.  But that's not to say that the current version
> of Git on Windows is unacceptable.  Do you have any specific complaints
> against the current implementation?

Sorry for the late reply on this one, I was abroad without access to
any Windows system so I had to wait until I came home in order to
re-evaluate.

After giving it a fresh spin I am now happy to announce that my
show-stopper complaints have all been addressed and are now obsolete!
\o/  Sean; I would like to apologize for underestimating the activity
of git's Windows port, unlike certain projects that are moving in the
wrong direction by evolving into things less portable, this project
has developers who care about support for non-POSIX systems and who
are actively pushing it in the right direction. To fellow GStreamers;
my apologies for the stop energy, the switching decision came as a big
surprise so instead of patiently waiting a week in order to be able to
re-evaluate, I was worried that the switch was virtually finished so I
immediately raised my obsolete objections. Sorry about that, I suck.
I'm glad I was wrong. :)

My vote on switching has been changed to: +1

Cheers,
Ole André

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer switching to git

Ole André Vadla Ravnås
On Tue, Jul 15, 2008 at 11:10 AM, Ole André Vadla Ravnås
<[hidden email]> wrote:

> On Thu, Jul 10, 2008 at 2:10 PM, Sean Estabrooks <[hidden email]> wrote:
>> On Thu, 10 Jul 2008 13:54:32 +0300
>> "Ole André Vadla Ravnås" <[hidden email]> wrote:
>>
>>> I'm aware that things are in heavy development, and that's really
>>> promising. However, for those of us stuck doing GStreamer development
>>> on this broken platform it's less of an option to put our current
>>> efforts on hold, or reduce our productivity by having to fix bugs in
>>> tools that aren't quite there yet. There's certainly enough
>>> interesting problems to solve with the code itself on this platform,
>>> and personally I'm already bogged down with maintenance of another
>>> build system (because autotools isn't usable for day-to-day
>>> development on Windows), and introducing even more tools that aren't
>>> there yet on the portability-side will just make things even less
>>> productive.
>>
>> Git is a healthy project with lots of active development so things are
>> improving all the time.  But that's not to say that the current version
>> of Git on Windows is unacceptable.  Do you have any specific complaints
>> against the current implementation?
>
> Sorry for the late reply on this one, I was abroad without access to
> any Windows system so I had to wait until I came home in order to
> re-evaluate.
>
> After giving it a fresh spin I am now happy to announce that my
> show-stopper complaints have all been addressed and are now obsolete!

Bad wording here; by 'show-stopper' I meant something that I
considered a show-stopper for myself giving the switching decision a
loud +1. :)

Cheers,
Ole André

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer switching to git

Julien Moutte-2

So in the light of what Zaheer said and the fact that bazaar could
completely work with a git repository I think we are all okay with the
move to GIT.

Great news !

Julien Moutte


Ole André Vadla Ravnås wrote:

> On Tue, Jul 15, 2008 at 11:10 AM, Ole André Vadla Ravnås
> <[hidden email]> wrote:
>> On Thu, Jul 10, 2008 at 2:10 PM, Sean Estabrooks <[hidden email]> wrote:
>>> On Thu, 10 Jul 2008 13:54:32 +0300
>>> "Ole André Vadla Ravnås" <[hidden email]> wrote:
>>>
>>>> I'm aware that things are in heavy development, and that's really
>>>> promising. However, for those of us stuck doing GStreamer development
>>>> on this broken platform it's less of an option to put our current
>>>> efforts on hold, or reduce our productivity by having to fix bugs in
>>>> tools that aren't quite there yet. There's certainly enough
>>>> interesting problems to solve with the code itself on this platform,
>>>> and personally I'm already bogged down with maintenance of another
>>>> build system (because autotools isn't usable for day-to-day
>>>> development on Windows), and introducing even more tools that aren't
>>>> there yet on the portability-side will just make things even less
>>>> productive.
>>> Git is a healthy project with lots of active development so things are
>>> improving all the time.  But that's not to say that the current version
>>> of Git on Windows is unacceptable.  Do you have any specific complaints
>>> against the current implementation?
>> Sorry for the late reply on this one, I was abroad without access to
>> any Windows system so I had to wait until I came home in order to
>> re-evaluate.
>>
>> After giving it a fresh spin I am now happy to announce that my
>> show-stopper complaints have all been addressed and are now obsolete!
>
> Bad wording here; by 'show-stopper' I meant something that I
> considered a show-stopper for myself giving the switching decision a
> loud +1. :)
>
> Cheers,
> Ole André
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
12