From: Justin Leung <jleung@redback.com>
To: George Spelvin <linux@horizon.com>
Cc: git@vger.kernel.org
Subject: Re: Verilog/ASIC development support is insufficient in git , help!
Date: Mon, 12 May 2008 11:54:16 -0700 [thread overview]
Message-ID: <48289258.4010406@redback.com> (raw)
In-Reply-To: <20080511172549.28205.qmail@science.horizon.com>
Thanks George .
is the git-cvsserver usable?
I wanted to try it , but the inability to tag from the cvs side is not
something that i can sell to my managements .
Justin
George Spelvin wrote:
>> - no incremental revision numbers (they are so scared of the 40hex SHA1)
>>
>> - Inability to reference without SHA1, they want simple numbering (ie,
>> version 100, 120, 120.1, 130.4.5)
>>
>> - Inability to refer to a file by a simple number
>> (the backend guys will be confused by SHA1; they can't work with anything
>> more than 4-5 digits)
>>
>
> This is Fundamentally Impossible in a distributed system. You can try
> to fake it, but you just end up with horrible corner cases. Basically,
> without a central server, who makes sure the incremental numbers are
> assigned without collisions?
>
> HOWEVER:
>
> - You can use abbreviated SHA1 references. 5-6 digits will do to start,
> and you can go slightly longer when it becomes necessary. Due to the
> "birthday paradox", you need a hash code space larger than (number of
> objects)*(number of commits) to guarantee minimal chance of ambiguity.
>
> - You can have a post-commit hook that creates a simple numbered tag
> for each commit to the "master" repository. You guys working
> independently will have to get a little fancier, but the "master"
> can have simple numbers.
>
> Between those two, it should be pretty reasonable.
>
> To get what you're asking for, you'd have to have a "read-only git" that
> can ONLY pull from a centralized server that assigns the simple numbers,
> and can never do local commits.
>
> I think that seems kind of pointless to the developers. They'd like to
> give your hardware guys the CHANCE to learn git, even if most only
> use a very small subset of it.
>
> Is it that hard to tell them to "ignore that box in gitk"?
>
>
>> - Complexity of commands (although we can have warpper, but real git
>> commands for non-sw guys is not going to happen)
>>
>> Most hardware chip designers were using CVS since their first job.
>> It suited the purpose very well.
>>
>
> You can use git-cvsserver to give them a CVS interface if that's what
> they're happy with...
>
>
>> We don't use branches.
>> Our model is strict forward with a centralized, one main branch model to
>> avoid mistakes.
>> We see branches as evil; some merges in Verilog codes means another 10+
>> hours of simulation and regression.
>>
>
> I realize it's a big culture shock, but what git does with branch merges is
> *exactly* what CVS does with "cvs update". So there truly is no evil.
> You can certainly use a "git rebase" style instead, but that's just style;
> it doesn't change the basic underlying issue: as soon as you drop strict
> locking and allow concurrent development, you have merges.
>
> "cvs update" basically does a "git rebase" and so doesn't show the merges
> in the revision history, but they're there, and the possibility of
> bugs is exactly the same.
>
> "git push" and "cvs commit" both have exactly the same rules: you
> may not append to the server history unless you've fetched the
> latest and resolved any conflicts.
>
> CVS branches are Horrible Awful Painful Things and I don't blame you
> for avoiding them. Git doesn't force you to use branches, but they're
> downright pleasant to use, and provide a more accurate representation
> in the development history of the actual concurrent development.
>
>
>> - 'git-show-branch' actually show reversed serialized version numbers (we
>> want it the other way, accending)
>>
>
> If you assign sequential version number tags on the central server, then
> you want an option for it to use tags rather than just branch names. That
> will take care of this quite nicely. Unfortunately, I can't seem to find
> it right now. Gitk does show tags in a very natural way.
>
next parent reply other threads:[~2008-05-12 18:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080511172549.28205.qmail@science.horizon.com>
2008-05-12 18:54 ` Justin Leung [this message]
[not found] <EB66C79C87CF49E59CB39EA4C286AE05@justinuTop>
2008-05-11 5:08 ` Verilog/ASIC development support is insufficient in git , help! Justin Leung
2008-05-11 5:21 ` Kevin Ballard
2008-05-11 5:29 ` Justin Leung
2008-05-11 5:33 ` Kevin Ballard
2008-05-12 18:45 ` Justin Leung
2008-05-12 5:57 ` Dana How
2008-05-12 19:02 ` Justin Leung
2008-05-11 9:21 ` Christian MICHON
2008-05-12 18:51 ` Justin Leung
2008-05-11 9:23 ` Jakub Narebski
2008-05-12 23:09 ` Daniel Barkalow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48289258.4010406@redback.com \
--to=jleung@redback.com \
--cc=git@vger.kernel.org \
--cc=linux@horizon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).