Mail Archives: geda-user/2013/01/15/22:02:47
--Apple-Mail-116--106531282
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
On Jan 15, 2013, at 11:51 AM, Ouabache Designworks wrote:
>=20
> Version control systems were designed by software engineers for =
software engineers. A lot of hardware design now
> resembles software programming so we can use a lot of their tools BUT =
not all of them. Hardware design is more complex than
> software programming and not all software tools will work. Version =
control is one of them.
Hardware design is certainly not more complicated than software in my =
experience.
>=20
> A programmer knows that all .log and .obj files are generated so it =
is easy to set up git to ignore all of them. Cleaning them
> out between runs is a simple wild card operation.
>=20
> The hardware designer does not know if a verilog .v file was =
handcrafted and must be checked in or generated by finiteStateMachine
> tool and should not be checked in. Setting up the ignore and clean =
functions can be done but will take a lot of effort. Using something
> like lndir saves a lot of effort in the long run and doesn't break =
down in the middle of a design project.
But this happens frequently in software. Programs often generate =
programs. You may start with Makefile.am, generate Makefile.in, then =
Makefile, then compile link and run a project specific tool that =
generates C source code, compile and link that, etc. generating lots of =
derived "source" files. Very common in software, but I've never seen a =
hardware development flow so complicated.
>=20
> The thing to remember about VersionControl is that your design data is =
probably going to live on long after the VersionControlSystem du_jour =
has
> been dumped for the next best one. When selecting a new one the only =
thing you need to know is how to get your data and checkin logs out of
> it when it comes time to move on to a newer VCS.
Well, in the free/open world things tend to stick around. My RCS =
archives from the 1980's are still perfectly usable. You can even obtain =
a rewrite of SCCS, from the 1970's, if you wish.
In hardware, it's the other things that move faster. I still have =
hardware designs from 20 years ago on my computer, but I don't have the =
EDA system that I used. In any case, I'd have to rob a museum to get the =
parts ;-)
Many of my projects are mixtures of hardware and software. It's very =
nice to have both under a common VCS, especially when the software =
depends on which version of the hardware I'm building for.
John Doty Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd AT noqsi DOT com
--Apple-Mail-116--106531282
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><br><div><div>On Jan 15, 2013, at 11:51 AM, Ouabache Designworks =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><br>Version control systems were designed by software =
engineers for software engineers. A lot of hardware design =
now<br>resembles software programming so we can use a lot of their tools =
BUT not all of them. Hardware design is more complex than<br>
software programming and not all software tools will work. Version =
control is one of them.<br></blockquote><div><br></div>Hardware design =
is certainly not more complicated than software in my =
experience.</div><div><br><blockquote type=3D"cite"><br>A programmer =
knows that all .log and .obj files are generated so it is easy to =
set up git to ignore all of them. Cleaning them<br>
out between runs is a simple wild card operation.<br><br>The hardware =
designer does not know if a verilog .v file was handcrafted and must be =
checked in or generated by finiteStateMachine<br>tool and should not be =
checked in. Setting up the ignore and clean functions can be =
done but will take a lot of effort. Using something<br>
like lndir saves a lot of effort in the long run and doesn't break down =
in the middle of a design project.<br></blockquote><div><br></div>But =
this happens frequently in software. Programs often generate programs. =
You may start with Makefile.am, generate Makefile.in, then Makefile, =
then compile link and run a project specific tool that generates C =
source code, compile and link that, etc. generating lots of derived =
"source" files. Very common in software, but I've never seen a hardware =
development flow so complicated.</div><div><br></div><div><blockquote =
type=3D"cite"><br>The thing to remember about VersionControl is that =
your design data is probably going to live on long after the =
VersionControlSystem du_jour has<br>
been dumped for the next best one. When selecting a new one the =
only thing you need to know is how to get your data and checkin logs out =
of<br>it when it comes time to move on to a newer =
VCS.<br></blockquote><div><br></div>Well, in the free/open world things =
tend to stick around. My RCS archives from the 1980's are still =
perfectly usable. You can even obtain a rewrite of SCCS, from the =
1970's, if you wish.</div><div><br></div><div>In hardware, it's the =
other things that move faster. I still have hardware designs from 20 =
years ago on my computer, but I don't have the EDA system that I used. =
In any case, I'd have to rob a museum to get the parts =
;-)</div><div><br></div><div>Many of my projects are mixtures of =
hardware and software. It's very nice to have both under a common VCS, =
especially when the software depends on which version of the hardware =
I'm building for.</div><div><br></div><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: auto; =
-khtml-text-decorations-in-effect: none; text-indent: 0px; =
-apple-text-size-adjust: auto; text-transform: none; orphans: 2; =
white-space: normal; widows: 2; word-spacing: 0px; "><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: auto; =
-khtml-text-decorations-in-effect: none; text-indent: 0px; =
-apple-text-size-adjust: auto; text-transform: none; orphans: 2; =
white-space: normal; widows: 2; word-spacing: 0px; "><p style=3D"margin: =
0.0px 0.0px 0.0px 0.0px"><font face=3D"Helvetica" size=3D"3" =
style=3D"font: 12.0px Helvetica">John Doty<span =
class=3D"Apple-converted-space"> <span =
class=3D"Apple-converted-space"> </span><span =
class=3D"Apple-converted-tab"> <span =
class=3D"Apple-converted-space"> </span></span></span>Noqsi =
Aerospace, Ltd.</font></p><p style=3D"margin: 0.0px 0.0px 0.0px =
0.0px"><a href=3D"http://www.noqsi.com/">http://www.noqsi.com/</a></p><p =
style=3D"margin: 0.0px 0.0px 0.0px 0.0px"><font face=3D"Helvetica" =
size=3D"3" style=3D"font: 12.0px Helvetica"><a =
href=3D"mailto:jpd AT noqsi DOT com">jpd AT noqsi DOT com</a></font></p><br =
class=3D"Apple-interchange-newline"></span></span>
</div>
<br></body></html>=
--Apple-Mail-116--106531282--
- Raw text -