From 2cf53951171038d6ff3d01d28ac698dc184243a0 Mon Sep 17 00:00:00 2001 From: zipperer <47086307+zipperer@users.noreply.github.com> Date: Wed, 17 Aug 2022 14:18:37 -0500 Subject: [PATCH 01/35] external editor applications for macOS: Add Emacs This commit follows the steps to add an external editor for macOS (please see: https://github.com/desktop/desktop/blob/1b30bfb027aa0c522bf2d2c48122ce0d9c11e2e2/docs/technical/editor-integration.md). ``` machine:~ $ defaults read /Applications/Emacs.app/Contents/Info CFBundleIdentifier org.gnu.Emacs machine:~ $ ``` --- app/src/lib/editors/darwin.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/lib/editors/darwin.ts b/app/src/lib/editors/darwin.ts index 9969128ef6..2431b6e14e 100644 --- a/app/src/lib/editors/darwin.ts +++ b/app/src/lib/editors/darwin.ts @@ -132,6 +132,10 @@ const editors: IDarwinExternalEditor[] = [ name: 'Nova', bundleIdentifiers: ['com.panic.Nova'], }, + { + name: 'Emacs', + bundleIdentifiers: ['org.gnu.Emacs'], + }, ] async function findApplication( From c554b5f6fc998726b01bc5aa41d746d8793fb5aa Mon Sep 17 00:00:00 2001 From: zipperer <47086307+zipperer@users.noreply.github.com> Date: Wed, 17 Aug 2022 14:27:40 -0500 Subject: [PATCH 02/35] editor-integration.md: macOS external editors: add Emacs --- docs/technical/editor-integration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/technical/editor-integration.md b/docs/technical/editor-integration.md index b6b3084ba5..5bdd016bf5 100644 --- a/docs/technical/editor-integration.md +++ b/docs/technical/editor-integration.md @@ -235,6 +235,7 @@ These editors are currently supported: - [JetBrains Rider](https://www.jetbrains.com/rider/) - [Nova](https://nova.app/) - [Aptana Studio](http://www.aptana.com/) + - [Emacs] (https://www.gnu.org/software/emacs/) These are defined in a list at the top of the file: From de7d2c83713b693d70e33bd4dd9340ae2701cac6 Mon Sep 17 00:00:00 2001 From: zipperer <47086307+zipperer@users.noreply.github.com> Date: Thu, 18 Aug 2022 09:16:48 -0500 Subject: [PATCH 03/35] macOS: documentation of external editors: entry for Emacs: remove space between text and link --- docs/technical/editor-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/technical/editor-integration.md b/docs/technical/editor-integration.md index 5bdd016bf5..827740c1aa 100644 --- a/docs/technical/editor-integration.md +++ b/docs/technical/editor-integration.md @@ -235,7 +235,7 @@ These editors are currently supported: - [JetBrains Rider](https://www.jetbrains.com/rider/) - [Nova](https://nova.app/) - [Aptana Studio](http://www.aptana.com/) - - [Emacs] (https://www.gnu.org/software/emacs/) + - [Emacs](https://www.gnu.org/software/emacs/) These are defined in a list at the top of the file: From f2aafb0ee561b30fcc46b1520e8348d207149048 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Aug 2022 15:30:35 +0000 Subject: [PATCH 04/35] Bump peter-evans/create-pull-request from 4.0.4 to 4.1.1 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.0.4 to 4.1.1. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v4.0.4...v4.1.1) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/release-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 0619858d7b..b359d10533 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -37,7 +37,7 @@ jobs: private_key: ${{ secrets.DESKTOP_RELEASES_APP_PRIVATE_KEY }} - name: Create Release Pull Request - uses: peter-evans/create-pull-request@v4.0.4 + uses: peter-evans/create-pull-request@v4.1.1 if: | startsWith(github.ref, 'refs/heads/releases/') && !contains(github.ref, 'test') with: From 29216ffad0a76636c5eb0af1039975e9317b2258 Mon Sep 17 00:00:00 2001 From: Sergio Padrino Date: Tue, 23 Aug 2022 16:43:10 +0200 Subject: [PATCH 05/35] Bump macos-10.15 runners (deprecated) to 11 --- .github/workflows/ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4e11559d5..b8c8771aff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,17 +16,14 @@ jobs: fail-fast: false matrix: node: [16.13.0] - os: [macos-10.15, windows-2019] + os: [macos-11, windows-2019] arch: [x64, arm64] include: - - os: macos-10.15 + - os: macos-11 friendlyName: macOS - os: windows-2019 friendlyName: Windows timeout-minutes: 60 - env: - # Needed for macOS arm64 until hosted macos-11.0 runners become available - SDKROOT: /Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk steps: - uses: actions/checkout@v3 with: From 2b100d9132d048e0138e922b425649f9442393b7 Mon Sep 17 00:00:00 2001 From: Sergio Padrino Date: Wed, 24 Aug 2022 10:54:37 +0200 Subject: [PATCH 06/35] Update changelog.json --- changelog.json | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.json b/changelog.json index 7f97d695f7..d998116cef 100644 --- a/changelog.json +++ b/changelog.json @@ -14,7 +14,6 @@ "[Fixed] Fix commit description with three lines overflowing when it shouldn't - #14791. Thanks @HeCorr!", "[Fixed] Fix notifications on Windows 10 builds prior to the Creators Update - #14714", "[Fixed] 'Update from default branch` menu item allows quick merge of upstream - #14145. Thanks @uttiya10!", - "[Improved] On Apple silicon devices running unoptimized builds, auto-update on first run to an optimized build - #14998", "[Improved] Add ability to skip staggered release to ensure the latest version is downloaded - #14883" ], "3.0.6-beta3": [ From 30e1f804644dacc9b4199a9265982e95db8ee946 Mon Sep 17 00:00:00 2001 From: Sergio Padrino Date: Wed, 24 Aug 2022 11:29:11 +0200 Subject: [PATCH 07/35] Revert "Revert "Merge pull request #14813 from desktop/upgrade-to-electron-v19"" This reverts commit b581860acb02dc84e53cf7e40d2ae9b68c6e728b. --- app/.npmrc | 2 +- package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/.npmrc b/app/.npmrc index 504b4d19ba..efea0b211b 100644 --- a/app/.npmrc +++ b/app/.npmrc @@ -1,3 +1,3 @@ runtime = electron disturl = https://electronjs.org/headers -target = 17.0.1 +target = 19.0.0 diff --git a/package.json b/package.json index db4432a579..920e8bbdb6 100644 --- a/package.json +++ b/package.json @@ -153,7 +153,7 @@ "@types/webpack-hot-middleware": "^2.25.6", "@types/webpack-merge": "^5.0.0", "@types/xml2js": "^0.4.0", - "electron": "17.0.1", + "electron": "19.0.0", "electron-builder": "^22.7.0", "electron-packager": "^15.1.0", "electron-winstaller": "^5.0.0", diff --git a/yarn.lock b/yarn.lock index e7ba28f440..f4e1a41ff3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -506,10 +506,10 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" -"@electron/get@^1.13.0": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368" - integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA== +"@electron/get@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" + integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== dependencies: debug "^4.1.1" env-paths "^2.2.0" @@ -1203,10 +1203,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== -"@types/node@^14.6.2": - version "14.17.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.5.tgz#b59daf6a7ffa461b5648456ca59050ba8e40ed54" - integrity sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA== +"@types/node@^16.11.26": + version "16.11.40" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.40.tgz#bcf85f3febe74436107aeb2d3fb5fd0d30818600" + integrity sha512-7bOWglXUO6f21NG3YDI7hIpeMX3M59GG+DzZuzX2EkFKYUnRoxq3EOg4R0KNv2hxryY9M3UUqG5akwwsifrukw== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -3442,13 +3442,13 @@ electron-winstaller@*, electron-winstaller@^5.0.0: lodash.template "^4.2.2" temp "^0.9.0" -electron@17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-17.0.1.tgz#e6c7ad2be26e7be8a5a9bac16b21920ad2671224" - integrity sha512-CBReR/QEOpgwMdt59lWCtj9wC8oHB6aAjMF1lhXcGew132xtp+C5N6EaXb/fmDceVYLouziYjbNcpeXsWrqdpA== +electron@19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.0.tgz#f6b742b708ec118676ba3b38d0f3712d8f0311cf" + integrity sha512-VXwqLQxuIUr0SI8vOYDj5OLPwtKa/trn5DVKd/BFGT/U/IerfVoSZuydGLOjSL5yJlckfmKQpiq+8PW4gI8hXA== dependencies: - "@electron/get" "^1.13.0" - "@types/node" "^14.6.2" + "@electron/get" "^1.14.1" + "@types/node" "^16.11.26" extract-zip "^1.0.3" element-closest@^2.0.2: From e849a0b9b5278e1e460748943353a0c4a3ce4c28 Mon Sep 17 00:00:00 2001 From: Sergio Padrino Date: Wed, 24 Aug 2022 11:31:17 +0200 Subject: [PATCH 08/35] Enable x64-to-arm64 immediate updates in prod builds --- app/src/lib/feature-flag.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/lib/feature-flag.ts b/app/src/lib/feature-flag.ts index cdbdec9cd2..7f5e765bd0 100644 --- a/app/src/lib/feature-flag.ts +++ b/app/src/lib/feature-flag.ts @@ -75,7 +75,7 @@ export function enableUpdateFromEmulatedX64ToARM64(): boolean { export function enableImmediateUpdateFromEmulatedX64ToARM64(): boolean { // Because of how Squirrel.Windows works, this is only available for macOS. // See: https://github.com/desktop/desktop/pull/14998 - return __DARWIN__ && enableBetaFeatures() + return __DARWIN__ } /** Should we allow resetting to a previous commit? */ From a1af96c131a5dd3532c13c2176141cd50ca5358d Mon Sep 17 00:00:00 2001 From: Sergio Padrino Date: Wed, 24 Aug 2022 11:37:35 +0200 Subject: [PATCH 09/35] Turn feature flag into private function in the UpdateStore --- app/src/lib/feature-flag.ts | 10 ---------- app/src/ui/lib/update-store.ts | 20 ++++++++++++++------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/src/lib/feature-flag.ts b/app/src/lib/feature-flag.ts index 7f5e765bd0..28ddeba19e 100644 --- a/app/src/lib/feature-flag.ts +++ b/app/src/lib/feature-flag.ts @@ -68,16 +68,6 @@ export function enableUpdateFromEmulatedX64ToARM64(): boolean { return enableBetaFeatures() } -/** - * Should we allow x64 apps running under ARM translation to auto-update to - * ARM64 builds IMMEDIATELY instead of waiting for the next release? - */ -export function enableImmediateUpdateFromEmulatedX64ToARM64(): boolean { - // Because of how Squirrel.Windows works, this is only available for macOS. - // See: https://github.com/desktop/desktop/pull/14998 - return __DARWIN__ -} - /** Should we allow resetting to a previous commit? */ export function enableResetToCommit(): boolean { return enableDevelopmentFeatures() diff --git a/app/src/ui/lib/update-store.ts b/app/src/ui/lib/update-store.ts index 8d61eff517..a684cc5676 100644 --- a/app/src/ui/lib/update-store.ts +++ b/app/src/ui/lib/update-store.ts @@ -19,10 +19,7 @@ import { parseError } from '../../lib/squirrel-error-parser' import { ReleaseSummary } from '../../models/release-notes' import { generateReleaseSummary } from '../../lib/release-notes' import { setNumber, getNumber } from '../../lib/local-storage' -import { - enableImmediateUpdateFromEmulatedX64ToARM64, - enableUpdateFromEmulatedX64ToARM64, -} from '../../lib/feature-flag' +import { enableUpdateFromEmulatedX64ToARM64 } from '../../lib/feature-flag' import { offsetFromNow } from '../../lib/offset-from' import { gte, SemVer } from 'semver' import { getRendererGUID } from '../../lib/get-renderer-guid' @@ -124,7 +121,7 @@ class UpdateStore { // and it's the same version we have right now (which means we spoofed // Central with an old version of the app). this.isX64ToARM64ImmediateAutoUpdate = - enableImmediateUpdateFromEmulatedX64ToARM64() && + this.supportsImmediateUpdateFromEmulatedX64ToARM64() && this.newReleases !== null && this.newReleases.length === 1 && this.newReleases[0].latestVersion === getVersion() && @@ -133,6 +130,17 @@ class UpdateStore { this.emitDidChange() } + /** + * Whether or not the app supports auto-updating x64 apps running under ARM + * translation to ARM64 builds IMMEDIATELY instead of waiting for the next + * release. + */ + private supportsImmediateUpdateFromEmulatedX64ToARM64(): boolean { + // Because of how Squirrel.Windows works, this is only available for macOS. + // See: https://github.com/desktop/desktop/pull/14998 + return __DARWIN__ + } + /** Register a function to call when the auto updater state changes. */ public onDidChange(fn: (state: IUpdateState) => void): Disposable { return this.emitter.on('did-change', fn) @@ -229,7 +237,7 @@ class UpdateStore { // If we want the app to force an auto-update from x64 to arm64 right // after being installed, we need to spoof a really old version to trick // both Central and Squirrel into thinking we need the update. - if (enableImmediateUpdateFromEmulatedX64ToARM64()) { + if (this.supportsImmediateUpdateFromEmulatedX64ToARM64()) { url.searchParams.set('version', '0.0.64') } } From 9fa0028c394aa93f4c07a07467db3eefa8c3c07e Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:29:16 -0400 Subject: [PATCH 10/35] Create unreachable-commits.md first draft --- docs/learn-more/unreachable-commits.md | 72 ++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs/learn-more/unreachable-commits.md diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md new file mode 100644 index 0000000000..1f0a812582 --- /dev/null +++ b/docs/learn-more/unreachable-commits.md @@ -0,0 +1,72 @@ +# Reachable and Unreachable Commits + +In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `development`, whose initial commit is `A`, and I add commit `B` and `C`. A resulting graph would be as follows: + +``` +development +C +| +B +| +A +``` + +Since we can follow the graph from `C` to `A`, that means that `A` is `reachable` by or from `C`. This as known as following the ancestral path of `C`. + +Now, if we create a new branch called `feature-branch` from `C` and commit `D` and `E` and then return to `development` and commit `F`. We would have the resulting graph: +``` +development +F +| E +| | <-- feature-branch +| D +| / +C +| +B +| +A +``` + +Here A is reachable by F through F, C, B, A and A is reachable by E through E, D, C, B, A. However, E, and D are not reachable by F. Thus, they are unreachable through their ancestral path. + + +Now, lets say we merge the `feature-branch` into our `development` branch. Our graph becomes: + +G +| \ +F | +| E +| | +| D +| / +C +| +B +| +A + +Still E and D are unreachable by F. There are a few git commands that use the ancestral path to determine what to show. One of those is `git diff`. If you `git diff` two commits such as `git diff A..C`, you will receive the set of changes from commits if you traverse the graph from C to A. Thus, changes from A, B, C. + +If you `git diff A..F`, you will likewise get changes from A,B,C,F. + +In GitHub Desktop, this may feel confusing becuase Desktop displays the commits in chronological order. Thus, you will see a list that looks like a collapsed graph. + +G +| +F +| +E +| +D +| +C +| +B +| +A + +Thus, when you select F through A to see a diff of F to A, you may initially expect to see changes from E and D, but you won't because those changes are `unreachable` from F. + + + From 5b5d50b792c84bb849eba1db6e961ad9a87cbd85 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:35:24 -0400 Subject: [PATCH 11/35] Moving around some stuff --- docs/learn-more/unreachable-commits.md | 35 +++++++++++--------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 1f0a812582..284232f40d 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -11,7 +11,7 @@ B A ``` -Since we can follow the graph from `C` to `A`, that means that `A` is `reachable` by or from `C`. This as known as following the ancestral path of `C`. +Since we can follow the graph from `C` to `A`, that means that `A` is **reachable** by or from `C`. This as known as following the ancestral path of `C`. Now, if we create a new branch called `feature-branch` from `C` and commit `D` and `E` and then return to `development` and commit `F`. We would have the resulting graph: ``` @@ -28,11 +28,14 @@ B A ``` -Here A is reachable by F through F, C, B, A and A is reachable by E through E, D, C, B, A. However, E, and D are not reachable by F. Thus, they are unreachable through their ancestral path. +In the above example, `A` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` -> `A` and `A` is reachable by `E` through `E` -> `D` -> `C` -> `B` -> `A`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. +There are a few git commands that use the ancestral path to determine what to show. One of those is `git diff`, which used to see the changes between two commits (non inclusive of the first commit). If we execute `git diff A..C`, we will receive the set of changes from commits if we wereto traverse the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff A..F`, you will likewise get changes from reachable from `F`; thus, `F` -> `C` -> `B` -> `A`. But, not changes from `E` and `D` as they are unreachable. + +## Merge Commits Now, lets say we merge the `feature-branch` into our `development` branch. Our graph becomes: - +``` G | \ F | @@ -45,28 +48,18 @@ C B | A +``` -Still E and D are unreachable by F. There are a few git commands that use the ancestral path to determine what to show. One of those is `git diff`. If you `git diff` two commits such as `git diff A..C`, you will receive the set of changes from commits if you traverse the graph from C to A. Thus, changes from A, B, C. +Still `E` and `D` are unreachable by `F`. Thus, the previous statements are still true. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`. This is true if you include the commit that connects them. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits are ancestors of `G`. Thus, if we were to `git diff A..G`. We will see changes of all ancestral paths of `G` to `A`. Those paths are `G` -> `F` -> `C` -> `B` -> `A` and `G`-> `E` -> `D` -> `C` -> `B` -> `A`. Therefore we will see changes from `G`, `F`, `E`, `D`, `C`, and `B`. -If you `git diff A..F`, you will likewise get changes from A,B,C,F. +# GitHub Desktop +In GitHub Desktop, diffing across multiple commits on a branch with merges may sometimes result in diffs that have unreachable commits in the selection, because the commits are displayed chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: + +[Image from Desktop Here] + +Thus, when you select `F` through `A` to see a diff of `F` to `A` or `git diff A..F`, you may initially expect to see changes from `E` and `D`, but you won't because those changes are unreachable from `F`. -In GitHub Desktop, this may feel confusing becuase Desktop displays the commits in chronological order. Thus, you will see a list that looks like a collapsed graph. -G -| -F -| -E -| -D -| -C -| -B -| -A - -Thus, when you select F through A to see a diff of F to A, you may initially expect to see changes from E and D, but you won't because those changes are `unreachable` from F. From e904491fecb6361f694a8d18c0b7cf8742dfba58 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:54:51 -0400 Subject: [PATCH 12/35] Edits.. --- docs/learn-more/unreachable-commits.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 284232f40d..33d730a589 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -1,6 +1,6 @@ # Reachable and Unreachable Commits -In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `development`, whose initial commit is `A`, and I add commit `B` and `C`. A resulting graph would be as follows: +In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `development`, whose initial commit is `A`, and we add commit `B` and `C`. A resulting graph would be as follows: ``` development @@ -28,19 +28,20 @@ B A ``` -In the above example, `A` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` -> `A` and `A` is reachable by `E` through `E` -> `D` -> `C` -> `B` -> `A`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. +In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. -There are a few git commands that use the ancestral path to determine what to show. One of those is `git diff`, which used to see the changes between two commits (non inclusive of the first commit). If we execute `git diff A..C`, we will receive the set of changes from commits if we wereto traverse the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff A..F`, you will likewise get changes from reachable from `F`; thus, `F` -> `C` -> `B` -> `A`. But, not changes from `E` and `D` as they are unreachable. +Some git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits if we were to traverse the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. ## Merge Commits Now, lets say we merge the `feature-branch` into our `development` branch. Our graph becomes: ``` +development G | \ F | | E -| | +| | <-- feature-branch | D | / C @@ -50,10 +51,10 @@ B A ``` -Still `E` and `D` are unreachable by `F`. Thus, the previous statements are still true. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`. This is true if you include the commit that connects them. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits are ancestors of `G`. Thus, if we were to `git diff A..G`. We will see changes of all ancestral paths of `G` to `A`. Those paths are `G` -> `F` -> `C` -> `B` -> `A` and `G`-> `E` -> `D` -> `C` -> `B` -> `A`. Therefore we will see changes from `G`, `F`, `E`, `D`, `C`, and `B`. +Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`". This is true if you start at a commit that has them in it's ancestral path. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `A`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop -In GitHub Desktop, diffing across multiple commits on a branch with merges may sometimes result in diffs that have unreachable commits in the selection, because the commits are displayed chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: +In GitHub Desktop diffing across multiple commits is accomplished through a range selection. This results in executing `git diff` from first to last commit in that selection. Therefore, generating diffs on a branches where multiple branches are merged may result in unreachable commits inside a diff selection. This is because the commits are displayed chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: [Image from Desktop Here] From cfb28d01c452a2aeeadc481cd75ef7d0411f8950 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:27:45 -0400 Subject: [PATCH 13/35] Adding images to #GitHub Desktop --- docs/learn-more/unreachable-commits.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 33d730a589..74add65875 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -54,11 +54,14 @@ A Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`". This is true if you start at a commit that has them in it's ancestral path. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `A`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop -In GitHub Desktop diffing across multiple commits is accomplished through a range selection. This results in executing `git diff` from first to last commit in that selection. Therefore, generating diffs on a branches where multiple branches are merged may result in unreachable commits inside a diff selection. This is because the commits are displayed chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: +In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: -[Image from Desktop Here] +![image](https://user-images.githubusercontent.com/75402236/186673232-8100fe29-4351-4a20-a96a-6043dd8d351d.png) + +In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff` that shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating diffs on a branches where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit what the scenario described above in `Merge Commits`. + +https://user-images.githubusercontent.com/75402236/186671802-4ba49315-e25c-4a6c-93d1-70f2f24fbc19.mov -Thus, when you select `F` through `A` to see a diff of `F` to `A` or `git diff A..F`, you may initially expect to see changes from `E` and `D`, but you won't because those changes are unreachable from `F`. From 9334766cb3e46b56c4cfd905b4e5740fbe311b9f Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:30:03 -0400 Subject: [PATCH 14/35] Verbiage --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 74add65875..6a0b7fe2e0 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -31,7 +31,7 @@ A In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. -Some git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits if we were to traverse the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. +Some git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. ## Merge Commits Now, lets say we merge the `feature-branch` into our `development` branch. Our graph becomes: From 66568b7e7c628083477d0ec38895acd36b9767ea Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:31:32 -0400 Subject: [PATCH 15/35] Add unreachable commits heading --- docs/learn-more/unreachable-commits.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 6a0b7fe2e0..cb62da6e74 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -13,6 +13,7 @@ A Since we can follow the graph from `C` to `A`, that means that `A` is **reachable** by or from `C`. This as known as following the ancestral path of `C`. +## Unreachable Commits Now, if we create a new branch called `feature-branch` from `C` and commit `D` and `E` and then return to `development` and commit `F`. We would have the resulting graph: ``` development From f858e568c93053c6b79f799ced441a3e32d139fc Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:35:20 -0400 Subject: [PATCH 16/35] Add Git command heading - correct typo --- docs/learn-more/unreachable-commits.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index cb62da6e74..051bd6e841 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -31,7 +31,7 @@ A In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. - +## Git Commands Use the Ancestral Path Some git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. ## Merge Commits @@ -52,7 +52,7 @@ B A ``` -Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`". This is true if you start at a commit that has them in it's ancestral path. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `A`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. +Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`". This is true if you start at a commit that has them in it's ancestral path. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: From fe7a9aa763825d05a64ebc3c3a9abb3c00e7f37f Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:36:21 -0400 Subject: [PATCH 17/35] Remove redundancy --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 051bd6e841..b16ac02278 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -55,7 +55,7 @@ A Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`". This is true if you start at a commit that has them in it's ancestral path. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop -In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the section `Merge Commits` from the previous section would look like: +In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the previous section `Merge Commits` would look like: ![image](https://user-images.githubusercontent.com/75402236/186673232-8100fe29-4351-4a20-a96a-6043dd8d351d.png) From cade255d576708851dc60549a8808ab01a2f0d60 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:37:40 -0400 Subject: [PATCH 18/35] Typo --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index b16ac02278..5be669cfb2 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -59,7 +59,7 @@ In GitHub Desktop, commits are displayed linearly and in chronological order. Th ![image](https://user-images.githubusercontent.com/75402236/186673232-8100fe29-4351-4a20-a96a-6043dd8d351d.png) -In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff` that shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating diffs on a branches where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit what the scenario described above in `Merge Commits`. +In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff` that shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating a diff on a branch where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit what the scenario described above in `Merge Commits`. https://user-images.githubusercontent.com/75402236/186671802-4ba49315-e25c-4a6c-93d1-70f2f24fbc19.mov From 0488f0ce47389e4325cf43aaa9d71270fa65b8f1 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Thu, 25 Aug 2022 09:38:50 -0400 Subject: [PATCH 19/35] Grammars --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 5be669cfb2..293c97fc17 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -59,7 +59,7 @@ In GitHub Desktop, commits are displayed linearly and in chronological order. Th ![image](https://user-images.githubusercontent.com/75402236/186673232-8100fe29-4351-4a20-a96a-6043dd8d351d.png) -In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff` that shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating a diff on a branch where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit what the scenario described above in `Merge Commits`. +In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff` that shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating a diff on a branch where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit scenario described above in `Merge Commits`. https://user-images.githubusercontent.com/75402236/186671802-4ba49315-e25c-4a6c-93d1-70f2f24fbc19.mov From 32c6333d47ef21d666213f88e4f37079c0a5e94b Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:36:37 -0400 Subject: [PATCH 20/35] Grammar Co-authored-by: Steve Ward --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 293c97fc17..6b696e6d8d 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -35,7 +35,7 @@ In the above example, `B` is reachable by `F` through the ancestral path of `F`- Some git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. ## Merge Commits -Now, lets say we merge the `feature-branch` into our `development` branch. Our graph becomes: +Now, let's say that we merge the `feature-branch` into our `development` branch. Our graph becomes: ``` development G From 905cb4614dcecdb907bb3fd08158e146d93bada4 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:37:23 -0400 Subject: [PATCH 21/35] Grammar Co-authored-by: Steve Ward --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 6b696e6d8d..add4701f51 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -59,7 +59,7 @@ In GitHub Desktop, commits are displayed linearly and in chronological order. Th ![image](https://user-images.githubusercontent.com/75402236/186673232-8100fe29-4351-4a20-a96a-6043dd8d351d.png) -In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff` that shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating a diff on a branch where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit scenario described above in `Merge Commits`. +In GitHub Desktop, diffing across multiple commits is accomplished through a range selection that results in executing `git diff`, which shows the changes of comparing the first and last commit in the selection (inclusive). Therefore, generating a diff on a branch where merge commits exist may result in unreachable commits being inside a diff selection. The following shows the unreachable commit scenario described above in `Merge Commits`. https://user-images.githubusercontent.com/75402236/186671802-4ba49315-e25c-4a6c-93d1-70f2f24fbc19.mov From c5401f747b79d42a3ff5a7340d55785942f9527b Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:37:38 -0400 Subject: [PATCH 22/35] Grammar Co-authored-by: Steve Ward --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index add4701f51..4dfac1fe15 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -52,7 +52,7 @@ B A ``` -Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`". This is true if you start at a commit that has them in it's ancestral path. That is `G` and it is known as a **merge commit** and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. +Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`." This is true if you start at a commit that has them in its ancestral path. That is `G` and it is known as a **merge commit**, and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the previous section `Merge Commits` would look like: From 42459c1ff1617417a0b23dcbcd91fbda74923d8c Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:37:55 -0400 Subject: [PATCH 23/35] Grammar Co-authored-by: Steve Ward --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 4dfac1fe15..7406424f9e 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -32,7 +32,7 @@ A In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. ## Git Commands Use the Ancestral Path -Some git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. +Some Git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. ## Merge Commits Now, let's say that we merge the `feature-branch` into our `development` branch. Our graph becomes: From b611f1efb9ee053791bc8aa567bbb0c6c957901d Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:38:20 -0400 Subject: [PATCH 24/35] Grammar Co-authored-by: Steve Ward --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 7406424f9e..060de77454 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -1,6 +1,6 @@ # Reachable and Unreachable Commits -In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `development`, whose initial commit is `A`, and we add commit `B` and `C`. A resulting graph would be as follows: +In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `development`, whose initial commit is `A`, and we add commit `B` and `C`, the resulting graph would be as follows: ``` development From b87e09ef41d361a90aa6355f05af148eceeebc72 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:38:36 -0400 Subject: [PATCH 25/35] Grammar Co-authored-by: Steve Ward --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 060de77454..b13e904a42 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -29,7 +29,7 @@ B A ``` -In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B` and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. +In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B`, and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. ## Git Commands Use the Ancestral Path Some Git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. From 8d1e24b35597cc072afc03b4a6ff03f2ef8431e7 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:44:14 -0400 Subject: [PATCH 26/35] Reference git first parent first Co-Authored-By: Sergio Padrino <1083228+sergiou87@users.noreply.github.com> --- docs/learn-more/unreachable-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index b13e904a42..568c3915a8 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -52,7 +52,7 @@ B A ``` -Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`." This is true if you start at a commit that has them in its ancestral path. That is `G` and it is known as a **merge commit**, and it is special in that it has two parents. The first is `E` as the last commit of the branch being merged and `F` as the last commit of the branch being merged into. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. +Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`." This is true if you start at a commit that has them in its ancestral path. That is `G` and it is known as a **merge commit**, and it is special in that it has two parents. The first is `F` as the last commit of the branch being merged into, and `E` as the last commit of the branch being merged. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the previous section `Merge Commits` would look like: From 7f4a21b309bbe7ec3101a469ba1447c422fb14aa Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:45:38 -0400 Subject: [PATCH 27/35] Use `main` Co-Authored-By: Sergio Padrino <1083228+sergiou87@users.noreply.github.com> --- docs/learn-more/unreachable-commits.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 568c3915a8..055d80cb62 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -1,9 +1,9 @@ # Reachable and Unreachable Commits -In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `development`, whose initial commit is `A`, and we add commit `B` and `C`, the resulting graph would be as follows: +In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `main`, whose initial commit is `A`, and we add commit `B` and `C`, the resulting graph would be as follows: ``` -development +main C | B @@ -14,9 +14,9 @@ A Since we can follow the graph from `C` to `A`, that means that `A` is **reachable** by or from `C`. This as known as following the ancestral path of `C`. ## Unreachable Commits -Now, if we create a new branch called `feature-branch` from `C` and commit `D` and `E` and then return to `development` and commit `F`. We would have the resulting graph: +Now, if we create a new branch called `feature-branch` from `C` and commit `D` and `E` and then return to `main` and commit `F`. We would have the resulting graph: ``` -development +main F | E | | <-- feature-branch @@ -35,9 +35,9 @@ In the above example, `B` is reachable by `F` through the ancestral path of `F`- Some Git commands use the ancestral path to determine what to show. One of those is `git diff`, which is used to see the changes between two commits non inclusive of the first commit. If we execute `git diff A..C`, we will receive the set of changes from the commits along the ancestral path from `C` to `A` or `C` -> `B` -> `A`. Thus, we would see changes from `B` and `C`. Likewise, if we executed `git diff B..F`, you will get changes from reachable from `F`; thus, `F` -> `C` -> `B`. But, not changes from `E` and `D` as they are unreachable. ## Merge Commits -Now, let's say that we merge the `feature-branch` into our `development` branch. Our graph becomes: +Now, let's say that we merge the `feature-branch` into our `main` branch. Our graph becomes: ``` -development +main G | \ F | @@ -52,7 +52,7 @@ B A ``` -Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `development`, I should be able to see changes from `E` and `D`." This is true if you start at a commit that has them in its ancestral path. That is `G` and it is known as a **merge commit**, and it is special in that it has two parents. The first is `F` as the last commit of the branch being merged into, and `E` as the last commit of the branch being merged. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. +Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `main`, I should be able to see changes from `E` and `D`." This is true if you start at a commit that has them in its ancestral path. That is `G` and it is known as a **merge commit**, and it is special in that it has two parents. The first is `F` as the last commit of the branch being merged into, and `E` as the last commit of the branch being merged. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. # GitHub Desktop In GitHub Desktop, commits are displayed linearly and in chronological order. Thus, the graph from the previous section `Merge Commits` would look like: From be3193a20c983d54ec3a5b8c10d91dff8f6eee3c Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:47:23 -0400 Subject: [PATCH 28/35] Mermaid! Co-Authored-By: Sergio Padrino <1083228+sergiou87@users.noreply.github.com> --- docs/learn-more/unreachable-commits.md | 63 ++++++++++++-------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/docs/learn-more/unreachable-commits.md b/docs/learn-more/unreachable-commits.md index 055d80cb62..793f2accc3 100644 --- a/docs/learn-more/unreachable-commits.md +++ b/docs/learn-more/unreachable-commits.md @@ -2,31 +2,29 @@ In Git, every commit will have at least one parent commit except the very first. Additionally, a repository may have any number of branches that begin at any particular commit. Because of this we can create a graph of the history of a commit by following the path from one commit's parent to the another. Given a branch `main`, whose initial commit is `A`, and we add commit `B` and `C`, the resulting graph would be as follows: -``` -main -C -| -B -| -A +```mermaid + gitGraph + commit id: "A" + commit id: "B" + commit id: "C" ``` Since we can follow the graph from `C` to `A`, that means that `A` is **reachable** by or from `C`. This as known as following the ancestral path of `C`. ## Unreachable Commits Now, if we create a new branch called `feature-branch` from `C` and commit `D` and `E` and then return to `main` and commit `F`. We would have the resulting graph: -``` -main -F -| E -| | <-- feature-branch -| D -| / -C -| -B -| -A + +```mermaid + gitGraph + commit id: "A" + commit id: "B" + commit id: "C" + branch feature-branch + checkout feature-branch + commit id: "D" + commit id: "E" + checkout main + commit id: "F" ``` In the above example, `B` is reachable by `F` through the ancestral path of `F`-> `C` -> `B`, and `B` is reachable by `E` through `E` -> `D` -> `C` -> `B`. However, there is no such path to get to `E` or `D` from `F`. Thus, `E` and `D` are **unreachable** from `F`. @@ -36,20 +34,19 @@ Some Git commands use the ancestral path to determine what to show. One of those ## Merge Commits Now, let's say that we merge the `feature-branch` into our `main` branch. Our graph becomes: -``` -main -G -| \ -F | -| E -| | <-- feature-branch -| D -| / -C -| -B -| -A + +```mermaid + gitGraph + commit id: "A" + commit id: "B" + commit id: "C" + branch feature-branch + checkout feature-branch + commit id: "D" + commit id: "E" + checkout main + commit id: "F" + merge feature-branch tag: "G" ``` Still `E` and `D` are unreachable by `F`. But, you may think "I merged the `feature-branch` into `main`, I should be able to see changes from `E` and `D`." This is true if you start at a commit that has them in its ancestral path. That is `G` and it is known as a **merge commit**, and it is special in that it has two parents. The first is `F` as the last commit of the branch being merged into, and `E` as the last commit of the branch being merged. Now, all the commits in this graph are ancestors of `G`. Thus, if we were to execute `git diff B..G`. We will see changes of all ancestral paths of `G` to `B`. Those paths are `G` -> `F` -> `C` -> `B` and `G`-> `E` -> `D` -> `C` -> `B`. Therefore we will see changes from `G`, `F`, `E`, `D`, and `C`. From e8f39cfe1db97ea1cb851c0904fcf75d8d5ee7a3 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:58:10 -0400 Subject: [PATCH 29/35] Images stored locally Co-Authored-By: Sergio Padrino <1083228+sergiou87@users.noreply.github.com> --- docs/assets/unreachable-commits-demo.gif | Bin 0 -> 183182 bytes docs/assets/unreachable-commits-history.png | Bin 0 -> 33839 bytes docs/learn-more/unreachable-commits.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 docs/assets/unreachable-commits-demo.gif create mode 100644 docs/assets/unreachable-commits-history.png diff --git a/docs/assets/unreachable-commits-demo.gif b/docs/assets/unreachable-commits-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..380cf9d65601f2433a72794ca6c8e75d6a91cde6 GIT binary patch literal 183182 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