Our Blog

Git is a Distributed Version Control System

  • each developer has the entire repository, including the entire change history on his/her local machine
  • the developer can see changeset history offline or commit (check-in) changes offline to his local repository

Since the entire repository is local, we do everything locally. This includes, but not limited to:

  • Committing changes (Check-in)
  • Viewing commit history
  • Creating a new branch
  • Merging branches
  • Moving to a different branch
  • Deleting branches
  • Reverting older commits

Yes we do have to Check-in or ‘Push’ our changes to the remote repository.

“Check-in” within Git is divided into 2 parts: Commit and Push
Developers can now commit locally whatever they want – Ugly code, comments, and work in progress. The other developers won’t get those changes as the commit is performed entirely local on their respective PC. When the code is ready for the team, they can Push the code changes to the remote repository.  This workflow gives the developer addition management of changes and when/how things are pushed into the central repository for team consumption.

The Staging concept…. this is like Included / Excluded changes in TFS. Only staged files will be committed. Again, why? (well say locally modified configuration files can stay out of source control)

Branches and Merges
In TFS/TFSVC, Branch will create a new directory with a copy of all files and directories of the parent Branch. For a developer to work on that new branch, they will have to copy that directory to his hard disk, essentially having another folder with the source code.

With Git, each branch is not a copy of the files from the parent branch. Instead, it’s simply a pointer to the Commit in the parent Branch from where we created our new branch.  With Git when working on a different branch, we tell Git “Move to another branch” (Checkout command) and Git will change our working area to match the desired branch. Again, there is a performance benefit as this entire action is performed locally.  Git already contains all the branches on the local machine.

Merging is a lightweight operation. We can merge any branch to any branch. We can merge the entire difference or a specific Commit. Git will find the “Base” Commit where the branches split and allow us to resolve conflicts (This is the same as in TFS)

A good practice with Git is to create a new branch to work on a big feature. Eventually, merging that branch to the master branch and discarding the new branch entirely.
Reference/Tutorial on GIT branching

 

TFS/TFVC is Centralized Version Control System

  • the developer has a copy of the repository file system on his machine
  • offline actions like commits (check-ins)  and seeing history are impossible since the local repository can’t save “changes”

Technically, when using a bundler like webpack, the result will not make a difference with regard to the output of your bundling process.

That being said, dividing the packages in dependencies and devDependencies still helps you (and others looking at your package.json) to understand which packages are meant to end up being a part of the bundle created (dependencies), and which are needed to build the bundle only (devDependencies).

Just remember main principle:

-> If you need package in production put it into dependencies (most likely axios should be in dependencies in your case).

-> If you need package only during development, put it into devDependencies (e.g. unit-test libraries, which isn't needed in productions should be in devDependencies

Summary of important behavior differences:

  • dependencies are installed on both:

    • npm install from a directory that contains package.json
    • npm install $package on any other directory
  • devDependencies are:

    • also installed on npm install on a directory that contains package.json, unless you pass the --production flag.
    • not installed on npm install "$package" on any other directory, unless you give it the --dev option.
    • are not installed transitively.

Reference: StackOverflow

About Us

Web/Mobile Solutions

Our Contacts

Cincinnati, OH 45069