<commit_before>---
layout: essay
type: essay
draft: false
title: Managing More
date: 2016-09-12
labels:
  - git
  - configuration management
  - version control
---


# Real World Group Projects

Picture this, you are back in High School and you were assigned a group to do your final project of the year. This scenario will produce two types of emotions in a student; relief or distress. Most students will love the help but others will grovel at the thought of having to work with unreliable people. Today, there is Google Docs so everyone can work on one document at the same time from any computer. However, back then you would either have to go over to one of the group members house and work on it all together on one computer or e-mail different parts to one member and that member will manually input those parts into one document. 

Now try to imagine group projects for programming. There are hundreds of files for one software project so how do you manage all of them for one? 

A Software Developer must have skills called configuration management and version control. Mastering this skill requires for a programmer to be able to identify and track elements (files) in a repository (folders) so errors are clearly identified and solutions are easily found.


# Configuration Management and Version Control Technologies

## SVN vs. GIT

Programming software is the ultimate group project, so there are multiple methods to manage files in a clean and effective manner. 

There is a configuration management technology called Subversion(SVN), which is very similar to Google Shared Drive, where users can share a folder with each other. For SVN, there is a center repository of files and everyone can get a copy of it and edit that copy and apply those changes to the central repository. The problem with SVN gets a little problematic when multiple developers are working on the same file, unlike Google Doc's multi-person typing technology. 

The most current popular configuration management system is Git. Git allows everyone to have their own repository and they can edit their files, then push those changes on all of the other repositories. There will not be any problems with people editing the same file. A visual representation of these technologies are below.

<img class="ui centered big floated rounded image" src="../images/Git vs. Svn.png">


## Git and GitHub


 <img class= "ui small left floated rounded image" src="../images/git_logo.png">

Git is a local version control system that allows any type of project, not just for software development. Git keeps multiple versions of files, so if the newest version has an error, the previous version is retrievable. Many new programmers, like me, understand the problem of not being able to find a bug. Sometimes if I cannot find a bug I will be just restart the program from scratch. Using a version control system like Git will defintely prevent such devastating loss. Git also keeps tracks of roles, so company programmers can submit their work to their supervisors and be approved of the changes. I believe Git can make a work environment healthy and organized.
<commit_msg>Changed image<commit_after>---
layout: essay
type: essay
draft: false
title: Managing More
date: 2016-09-12
labels:
  - git
  - configuration management
  - version control
---


# Real World Group Projects

Picture this, you are back in High School and you were assigned a group to do your final project of the year. This scenario will produce two types of emotions in a student; relief or distress. Most students will love the help but others will grovel at the thought of having to work with unreliable people. Today, there is Google Docs so everyone can work on one document at the same time from any computer. However, back then you would either have to go over to one of the group members house and work on it all together on one computer or e-mail different parts to one member and that member will manually input those parts into one document. 

Now try to imagine group projects for programming. There are hundreds of files for one software project so how do you manage all of them for one? 

A Software Developer must have skills called configuration management and version control. Mastering this skill requires for a programmer to be able to identify and track elements (files) in a repository (folders) so errors are clearly identified and solutions are easily found.


# Configuration Management and Version Control Technologies

## SVN vs. GIT

Programming software is the ultimate group project, so there are multiple methods to manage files in a clean and effective manner. 

There is a configuration management technology called Subversion(SVN), which is very similar to Google Shared Drive, where users can share a folder with each other. For SVN, there is a center repository of files and everyone can get a copy of it and edit that copy and apply those changes to the central repository. The problem with SVN gets a little problematic when multiple developers are working on the same file, unlike Google Doc's multi-person typing technology. 

The most current popular configuration management system is Git. Git allows everyone to have their own repository and they can edit their files, then push those changes on all of the other repositories. There will not be any problems with people editing the same file. A visual representation of these technologies are below.

<img class="ui centered big floated rounded image" src="../images/Git vs. Svn.png">


## Git and GitHub


 <img class= "ui small left rounded image" src="../images/git_logo.png">

Git is a local version control system that allows any type of project, not just for software development. Git keeps multiple versions of files, so if the newest version has an error, the previous version is retrievable. Many new programmers, like me, understand the problem of not being able to find a bug. Sometimes if I cannot find a bug I will be just restart the program from scratch. Using a version control system like Git will defintely prevent such devastating loss. Git also keeps tracks of roles, so company programmers can submit their work to their supervisors and be approved of the changes. I believe Git can make a work environment healthy and organized.

{'fraction_non_alphanumeric': 0.03273998728544183, 'fraction_numerical': 0.0025429116338207248, 'mean_word_length': 4.319526627218935, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5177722', 'n_tokens_mistral': 1404, 'n_tokens_neox': 1328, 'n_words': 1016}