-
Notifications
You must be signed in to change notification settings - Fork 898
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
75 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 ] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |