| OLD | NEW |
| 1 # Vanilla msysgit workflow | 1 # Vanilla msysgit workflow |
| 2 | 2 |
| 3 This describes how you can use msysgit on Windows to work on the Chromium git | 3 This describes how you can use msysgit on Windows to work on the Chromium git |
| 4 repository, without setting up Cygwin or hacking the `git cl`, `git try` and | 4 repository, without setting up Cygwin or hacking the `git cl`, `git try` and |
| 5 other scripts to work under a regular Windows shell. | 5 other scripts to work under a regular Windows shell. |
| 6 | 6 |
| 7 The basic setup is to set up a regular git checkout on a Linux (or Mac) box, and | 7 The basic setup is to set up a regular git checkout on a Linux (or Mac) box, and |
| 8 use this exclusively to create your branches and run tools such as `git cl`, and | 8 use this exclusively to create your branches and run tools such as `git cl`, and |
| 9 have your Windows box treat this git repository as its upstream. | 9 have your Windows box treat this git repository as its upstream. |
| 10 | 10 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 1. `git push` | 91 1. `git push` |
| 92 1. Later, on Linux: | 92 1. Later, on Linux: |
| 93 1. `make_new_lkgr_branch lk0428` | 93 1. `make_new_lkgr_branch lk0428` |
| 94 1. `git merge lk0428 lk0426-mytopic` | 94 1. `git merge lk0428 lk0426-mytopic` |
| 95 1. `git branch -m lk0426-mytopic lk0428-mytopic` (to rename) | 95 1. `git branch -m lk0426-mytopic lk0428-mytopic` (to rename) |
| 96 1. `git merge lk0428-mytopic lk0426-mytopic-nextstep` | 96 1. `git merge lk0428-mytopic lk0426-mytopic-nextstep` |
| 97 1. `git branch -m lk0428-mytopic-nextstep lk0428-mytopic-nextstep` | 97 1. `git branch -m lk0428-mytopic-nextstep lk0428-mytopic-nextstep` |
| 98 (to rename) | 98 (to rename) |
| 99 1. Later, when you want to commit one of the earlier changes in the pipeline; | 99 1. Later, when you want to commit one of the earlier changes in the pipeline; |
| 100 all on Linux. The reason you may want to create the separate tip-of-tree | 100 all on Linux. The reason you may want to create the separate tip-of-tree |
| 101 branch is in case the trybots show your change failing on tip-of-tree and | 101 branch is in case the try bots show your change failing on tip-of-tree and |
| 102 you need to do significant additional work, this avoids having to roll back | 102 you need to do significant additional work, this avoids having to roll back |
| 103 the tip-of-tree merge: | 103 the tip-of-tree merge: |
| 104 | 104 |
| 105 Janitorial work on Windows: | 105 Janitorial work on Windows: |
| 106 | 106 |
| 107 * When you rename branches on the Linux side, the Windows repo will not know | 107 * When you rename branches on the Linux side, the Windows repo will not know |
| 108 automatically; so if you already had a branch `lk0426-mytopic` open on | 108 automatically; so if you already had a branch `lk0426-mytopic` open on |
| 109 Windows and then `git fetch`, you will still have `lk0426-mytopic` even if | 109 Windows and then `git fetch`, you will still have `lk0426-mytopic` even if |
| 110 that was renamed on the Linux side to `lk0428-mytopic`. | 110 that was renamed on the Linux side to `lk0428-mytopic`. |
| 111 * Dealing with this is straight-forward; you just | 111 * Dealing with this is straight-forward; you just |
| 112 `git checkout lk0428-mytopic` to switch to the renamed (and likely updated) | 112 `git checkout lk0428-mytopic` to switch to the renamed (and likely updated) |
| 113 branch. Then `git branch -d lk0426-mytopic` to get rid of the tracking | 113 branch. Then `git branch -d lk0426-mytopic` to get rid of the tracking |
| 114 branch for the older name. Then, occasionally, `git remotes prune origin` | 114 branch for the older name. Then, occasionally, `git remotes prune origin` |
| 115 to prune remote tracking branches (you don't normally see these listed | 115 to prune remote tracking branches (you don't normally see these listed |
| 116 unless you do `git branch -a`). | 116 unless you do `git branch -a`). |
| 117 | 117 |
| 118 Gotchas: | 118 Gotchas: |
| 119 | 119 |
| 120 * You should normally create your branches on Linux only, so that the Windows | 120 * You should normally create your branches on Linux only, so that the Windows |
| 121 repo gets tracking branches for them. Any branches you create in the | 121 repo gets tracking branches for them. Any branches you create in the |
| 122 Windows repo would be local to that repository, and so will be non-trivial | 122 Windows repo would be local to that repository, and so will be non-trivial |
| 123 to push to Linux. | 123 to push to Linux. |
| 124 * `git push` from Windows will fail if your Linux repo is checked out to the | 124 * `git push` from Windows will fail if your Linux repo is checked out to the |
| 125 same branch. It is easy to switch back manually, but I also have a script I | 125 same branch. It is easy to switch back manually, but I also have a script I |
| 126 call `safepush` that switches the Linux-side branch for you before pushing; | 126 call `safepush` that switches the Linux-side branch for you before pushing; |
| 127 let me (joi@chromium.org) know if interested. | 127 let me (joi@chromium.org) know if interested. |
| OLD | NEW |