Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
JKrag authored Nov 4, 2024
2 parents 8bf583a + 733377c commit a59cb94
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: CI

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

on:
push:
branches: [ master ]
Expand Down
2 changes: 1 addition & 1 deletion 3-way-merge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ You again live in your own branch, this time we will be doing a bit of juggling
- `git add`
- `git commit`
- `git commit -m`
- `git merge <branchA> <branchB>`
- `git merge <branch-name>`
- `git diff <branchA> <branchB>`
- `git log --oneline --graph --all`
31 changes: 31 additions & 0 deletions diff-advance/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Git Kata: Git Diff Advance

## Setup

Run `source setup.sh` or `bash setup.sh` or `./setup.sh` (or `.\setup.ps1` in PowerShell)

## Tasks

### Objectives: We will explore how git diff looks from different directions, `word-diff`, `name-only`, and a practical use case other than just to see diff.

1. Current branch is `pipeline-improvement`. Use `git diff` to see how it is different from master.
2. Compare `git diff master` and `git diff master pipeline-improvement`.
3. Compare `git diff master pipeline-improvement` and `git diff pipeline-improvement master`. Notice what is being removed and added.
4. Include `--word-diff` with `git diff`. In addition to the default, word diff can also be used in different modes, i.e. `--word-diff=color`. See how it is different from normal diff.
5. Include `--name-only` option with `git diff` and see the result.
6. With `--name-only`, we get a list of changed files. This can be useful for example when we want to do selective compile/test of changed files instead of a full re-build, given that steps can be compiled/tested independently. In our exercise, there are 3 steps in a pipeline and an utilities file. Let's say we only want to test the pipelines because we're confident enough with the utils to not test them (naughty-list programmer). We can do something like this:

`git diff --name-only master | grep '.pipeline' | xargs cat`

This will:
1. Get a list of the changed files
2. Filter for only `.pipeline` files
3. `cat`/test these files

## Relevant commands and options

- `git diff`
- `--word-diff`
- `--name-only`
- `grep`
- `xargs`
17 changes: 17 additions & 0 deletions diff-advance/setup.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Source utils
. ..\utils\make-exercise-repo.ps1

# Prep branches
Set-Content -Value "Step 1 before changes" -Path step1.pipeline
Set-Content -Value "Step 2 will remain unchanged" -Path step2.pipeline
Set-Content -Value "Step 3 before changes" -Path step3.pipeline
Set-Content -Value "Utilities before changes" -Path stepx.utils
git add .
git commit -m "Initial commit"

git checkout -b pipeline-improvement
Set-Content -Value "Step 1 after improvement" -Path step1.pipeline
Set-Content -Value "Step 3 after changes" -Path step3.pipeline
Set-Content -Value "Utilities after changes" -Path stepx.utils
git add .
git commit -m "Improve pipeline - name change"
23 changes: 23 additions & 0 deletions diff-advance/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

# Source utils
source ../utils/utils.sh

# Prep repo
kata="git-diff-advance"
make-exercise-repo

# Prep branches
echo "Step 1 before changes" > step1.pipeline
echo "Step 2 will remain unchanged" > step2.pipeline
echo "Step 3 before changes" > step3.pipeline
echo "Utilities before changes" > stepx.utils
git add .
git commit -m "Initial commit"

git checkout -b pipeline-improvement
echo "Step 1 after improvement" > step1.pipeline
echo "Step 3 after changes" > step3.pipeline
echo "Utilities after changes" > stepx.utils
git add .
git commit -m "Improve pipeline - name change"

0 comments on commit a59cb94

Please sign in to comment.