Altay Brusan and Aytac Durmaz
Git for Electronic Circuit Design
CAD and Version Control for Electrical Engineers
Logo of the publisher
Altay Brusan
Bogazici University, Istanbul, Turkey
Aytac Durmaz
Bogazici University, Istanbul, Turkey
ISBN 978-1-4842-8123-9 e-ISBN 978-1-4842-8124-6
https://doi.org/10.1007/978-1-4842-8124-6
Altay Brusan and Aytac Durmaz 2022
This work is subject to copyright. All rights are solely and exclusively licensed by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors, and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, expressed or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This Apress imprint is published by the registered company APress Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY 10004, U.S.A.
In memory of H. Brusan
Introduction
Computer-Aided Design (CAD) tools have an essential role in modern-age engineering. Specifically, circuit design tools have been advanced and professionalized in recent years. These tools make the job, which is classically done using pen and paper, easy for engineers; however, CAD systems require a new development ecosystem. The collaboration, sharing, backup, and management phases in modern projects need special tools and methods. Luckily, the software engineering ecosystem is full of tools that have already proven their capacity. Among them is Git, which is a cornerstone of modern-age software development and has already been applied in mainstream projects, such as Linux development. In recent years, Git has found its way in CAD applications also. It has eased the way the team members share their work and provided a centralized backup system, and essentially, it provides the facility for team managers to monitor the progress. However, Git is a double-edged sword! Without an educated application, it could end up in total chaos or even project failure! For this reason, all newcomers or even seasoned engineers with no background in software engineering need to know Git.
What Is Inside?
Git has hundreds of commands with many parameters. Learning all of them is not practical and not required at all! In the first part of this book, we focus on the Git language essentials. However, the contents are prepared based on two mindsets.
First, no graphical user interface (GUI) is sufficient. There are many free, open source, and commercial GUIs available for Git; however, in reality these tools are not a golden bullet for all scenarios. Based on an unwritten software engineering rule, if a chance of a bug is one in a billion, that problem would definitely happen one day! Same goes for the Git-based management system. In a shared environment, the chance of a collision and data loss is not negligible. Unfortunately, there are situations where we need to intervene and apply a chain of a complex set of commands to solve a conflict or problem. These kinds of scenarios are not usually available in a GUI.
The other way is to keep stuff as simple as possible and follow a consistent streamlined method. In the first part of the book, from Chapters , this knowledge is applied by developing two open source hardware design projects, and we will see Git in action.
Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/978-1-4842-8123-9. For more detailed information, please visit http://www.apress.com/source-code.
Acknowledgments
We are utterly grateful to Prof. Dr. Cengizhan Ozturk, who opened X-lab doors for curiosity, provided an excellent example for a nourishing future, and with his wisdom enlightened the room. We are grateful to Asuman Kolbasi for her great feedback and help in preparing the materials.
Altay Brusan is thoroughly thankful to Latifeh Gonbadi for her encouragement and affection in all aspects of his life. He appreciates and is grateful to his beautiful wife, Mahsa Modarresi, for her love, passion, support, and patience on this journey.
Table of Contents
About the Authors
Altay Brusan
has academic and field experience as a software engineer and digital circuit designer. He has developed open source and commercial projects in medical applications, such as iBEX software for radiology workstations and medical imaging hardware platforms. Altay is eager to share his 10 years of experience to help electronics engineers with less of a software background understand Git.
Aytac Durmaz
received his BS in electrical and electronics engineering from Bilkent University in 2007 and both his MSc (2010) and PhD in biomedical engineering (2019) from Boazii University. His current professional focus and researches are on IoT devices and platforms, software development, and medical devices. Durmaz is also the founder of several start-ups focused on medical devices, IoT, software development, and marine systems.
About the Technical Reviewer
Mezgani Ali
is a doctor in God sciences and religious studies and a PhD student of transmissions, telecommunications, and artificial intelligence (National Institute of Posts and Telecommunications in Rabat). He has a masters degree Research of Superior Institute of science and technologies (MPSI) Mathematics and Computer science in France, Laureate of classes of Engineer MPSI Degree in Morocco (My Youssef High School, Rabat).
Mezgani has worked for NIC France, Capgemini, HP, and Orange and was part of a team of site reliability engineers (SREs) responsible for keeping data center servers and customer applications up and running. He is fanatical about Kubernetes, REST API, MySQL, and Scala and is the creator of the functional and imperative programming language PASP. Mezganis first program was a horoscope in BASIC in 1993 and since then has done extensive work on the infrastructure side in system engineering, software engineering, managed networks, and security.