If possible, target commits at the 2.10.x branch rather than master. This can be done if the change is:
- Binary compatible (for scala-library)
- Source compatible (for unofficial compiler API used by SBT, IDE)
- Well isolated, doesn't involve sweeping structural changes
- Well tested. (but this must be true, otherwise it wouldn't be on master, right?!)
If such changes were targeted against master and now must be applied to 2.10.x, here's how to do it.
Install git-what-branch
git clone git://github.com/retronym/git-what-branch.git && cd git-what-branch && sudo make install
Configure your remote to fetch pull requests
~/code/scala git config -e
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/*
url = git@github.com:scala/scala.git
Install libscala
- Use git:
master ^2.10.x --no-merges --oneline - Using a JIRA Search fixVersion = "Unreleased-2.11.x" and status = closed
git what-branch --reference master 2b4e7183fd
2b4e7183fd used the following minimal temporal path:
merged to v2.10.0-M7-246-g930c85d @Thu Sep 6 19:30:58 2012
Merge pull request #1187 from retronym/ticket/3577
v2.10.0-M7-246-g930c85d is on master
git log-branch v2.10.0-M7-246-g930c85d
commit 00e46b3dbcea2b72fd3941b7ffc2efba382871e9
Author: Jason Zaugg <jzaugg@gmail.com>
Date: Fri Aug 24 01:16:47 2012 +0200
Mention BoundedWildcardType in "a standard type pattern match".
commit 2b4e7183fd24113cca5e868456668fd05c848168
Author: Jason Zaugg <jzaugg@gmail.com>
Date: Fri Aug 24 01:05:07 2012 +0200
Make RefChecks#validateVariance aware of BoundedWildcardType.
...
Read the comments on the pull request, and on any referenced JIRA tickets.
~/code/scala git cherry-pick-branch v2.10.0-M7-246-g930c85d
Switched to a new branch 'backport/1187'
[backport/1187 baa1975] SI-3577 Make varianceInType aware of BoundedWildcardType. (cherry picked from commit 21105654c40ed0c462142bcbb6c8eced77f8b07a)
2 files changed, 31 insertions(+)
create mode 100644 test/files/pos/t3577.scala
[backport/1187 8cde366] Make RefChecks#validateVariance aware of BoundedWildcardType.
1 file changed, 9 insertions(+), 7 deletions(-)
[backport/1187 63995b4] Mention BoundedWildcardType in "a standard type pattern match". (cherry picked from commit 00e46b3dbcea2b72fd3941b7ffc2efba382871e9)
1 file changed, 2 insertions(+)
HEAD is now at 4c0b9b2 Merge pull request #1583 from dragos/issue/fix-6616
Updating 4c0b9b2..63995b4
Fast-forward
Squash commit -- not updating HEAD
src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 16 +++++++++-------
src/compiler/scala/tools/nsc/typechecker/Variances.scala | 2 ++
src/reflect/scala/reflect/internal/Types.scala | 2 ++
test/files/pos/t3577.scala | 29 +++++++++++++++++++++++++++++
4 files changed, 42 insertions(+), 7 deletions(-)
create mode 100644 test/files/pos/t3577.scala
[backport/1187 3177edb] Squashed commit of the following:
4 files changed, 42 insertions(+), 7 deletions(-)
create mode 100644 test/files/pos/t3577.scala
backport/1187 ~/code/scala git log --graph
* commit 3177edb5a830f3922b1d7b1d6f79ef20648ff9e2
| Author: Jason Zaugg <jzaugg@gmail.com>
| Date: Wed Nov 14 14:40:59 2012 +0100
|
| Squashed commit of the following:
|
| commit 63995b4e4a93f9796149a3f7fea7d67e244211c5
| Author: Jason Zaugg <jzaugg@gmail.com>
| Date: Fri Aug 24 01:16:47 2012 +0200
|
| Mention BoundedWildcardType in "a standard type pattern match".
| (cherry picked from commit 00e46b3dbcea2b72fd3941b7ffc2efba382871e9)
|
| commit 8cde3664f57f357d18cfe2fbad4df842b9f8b7e2
| Author: Jason Zaugg <jzaugg@gmail.com>
| Date: Fri Aug 24 01:05:07 2012 +0200
|
| Make RefChecks#validateVariance aware of BoundedWildcardType.
git diff HEAD~1
ant dist-opt # Or leave it to the pull request validator if you are short on cycles
git push -u retronym backport/1187
git browse # requires `hub`
# Pull Request targetting 2.10.x