All of lore.kernel.org
 help / color / mirror / Atom feed
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.
>   

       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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.