|
|
|
@ -381,3 +381,51 @@ GUI
@@ -381,3 +381,51 @@ GUI
|
|
|
|
|
- *Rationale*: Model classes pass through events and data from the core, they |
|
|
|
|
should not interact with the user. That's where View classes come in. The converse also |
|
|
|
|
holds: try to not directly access core data structures from Views. |
|
|
|
|
|
|
|
|
|
Git and github tips |
|
|
|
|
--------------------- |
|
|
|
|
|
|
|
|
|
- For resolving merge/rebase conflicts, it can be useful to enable diff3 style using |
|
|
|
|
`git config merge.conflictstyle diff3`. Instead of |
|
|
|
|
|
|
|
|
|
<<< |
|
|
|
|
yours |
|
|
|
|
=== |
|
|
|
|
theirs |
|
|
|
|
>>> |
|
|
|
|
|
|
|
|
|
you will see |
|
|
|
|
|
|
|
|
|
<<< |
|
|
|
|
yours |
|
|
|
|
||| |
|
|
|
|
original |
|
|
|
|
=== |
|
|
|
|
theirs |
|
|
|
|
>>> |
|
|
|
|
|
|
|
|
|
This may make it much clearer what caused the conflict. In this style, you can often just look |
|
|
|
|
at what changed between *original* and *theirs*, and mechanically apply that to *yours* (or the other way around). |
|
|
|
|
|
|
|
|
|
- When reviewing patches which change indentation in C++ files, use `git diff -w` and `git show -w`. This makes |
|
|
|
|
the diff algorithm ignore whitespace changes. This feature is also available on github.com, by adding `?w=1` |
|
|
|
|
at the end of any URL which shows a diff. |
|
|
|
|
|
|
|
|
|
- When reviewing patches that change symbol names in many places, use `git diff --word-diff`. This will instead |
|
|
|
|
of showing the patch as deleted/added *lines*, show deleted/added *words*. |
|
|
|
|
|
|
|
|
|
- When reviewing patches that move code around, try using |
|
|
|
|
`git diff --patience commit~:old/file.cpp commit:new/file/name.cpp`, and ignoring everything except the |
|
|
|
|
moved body of code which should show up as neither `+` or `-` lines. In case it was not a pure move, this may |
|
|
|
|
even work when combined with the `-w` or `--word-diff` options described above. |
|
|
|
|
|
|
|
|
|
- When looking at other's pull requests, it may make sense to add the following section to your `.git/config` |
|
|
|
|
file: |
|
|
|
|
|
|
|
|
|
[remote "upstream-pull"] |
|
|
|
|
fetch = +refs/pull/*:refs/remotes/upstream-pull/* |
|
|
|
|
url = git@github.com:bitcoin/bitcoin.git |
|
|
|
|
|
|
|
|
|
This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all` |
|
|
|
|
or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`, |
|
|
|
|
`git checkout` and anywhere a commit id would be acceptable to see the changes from pull request NUMBER. |
|
|
|
|