Is there a centralized server as source code repository in Git ?
Can an entire project life-cycle be managed with GitHub ?
How do i relate my work in CMVC(or other similar SCMs) to this new way of working with Git?
Working on a Defect ( aka Issue )
- First thing you need to do is, “clone”(git clone) the repository locally and if you don’t specify a branch, the “master” branch gets cloned.
- In most cases it might be sufficient for you to have this single local copy (aka clone) for most of your work. ( This is similar to a “File -extract” of the entire code-based in CMVC ).
- Then you “create a branch” ( git branch, aka context ) with an appropriate name maybe including the issue# you are working on e.g. issue_123. You could though give any name to the branch.
- Then you need to “checkout” ( git checkout ) that branch (i.e. you move to the context of that branch).
- Always check the context(branch) before starting to make changes to a file. If you are not in the right branch, checkout the required branch first.
- Once inside the appropriate branch, modify the files as required; by directly editing them. ( nothing like “File -checkout” of CMVC required ).
- When you are done with all the changes, commit ( i.e. “git add“ and then “git commit“ ) the changes to the branch. This is similar to “File -checkin” in CMVC. Remember all of this is happening on your local computers repository. When you are done with all of your changes; you need to push ( git push ) the locally created/committed branch to the remote server( aka origin in GitHub terms ).
- Once your branch is pushed to the remote GitHub repository( aka origin) you could raise a review request by creating a “pull request” in GitHub.
- At this stage, the marked reviewers would be able to review your changes.
- You could address the review comments by making the changes in the same branch and then redo : git add, git commit, git push.
- Once the reviewers are satisfied with your changes, you( or repository owner ) will “merge” your changes to the higher level branch or master ( read more here for one preferred method : https://guides.github.com/introduction/flow/ ).
- In Git there is no explicit “File -checkout” required before editing a file; as each contributor could be editing the same file at the same time. There is no explicit “write lock” placed on the file as is the case with CMVC. This i see as complementary to the flexibility ( distributed work ) of Git.
- Unlike CMVC and other traditional version control systems which are centralized, Git is a distributed revision control system. What it means is that you can do work from your local copy of the repository even when you are not connected to the network.
Wow, i am overwhelmed, what next ?
C program (7)
call graph (1)
Device Drivers (6)
Flash Caching (1)
Kernel Extension (4)
Subscribe to Blog via Email
Google Analytics Statsgenerated by GADWP
- “call graph” generation using Doxygen and Graphviz August 20, 2017
- CMVC user guide for transitioning to Git June 25, 2017
- pretty print symbols in AIX with kdb, KDBSYM, pr August 13, 2016
- Configure SAS controller/disk for use in AIX/VIOS partition May 15, 2016
- Enhanced num_cmd_elems attribute for virtual FC ( NPIV ) AIX March 19, 2016