Uwe Schindler created LUCENE-6995:
-------------------------------------
Summary: Add branch change trigger to common-build.xml to keep
sane build on GIT branch change
Key: LUCENE-6995
URL: https://issues.apache.org/jira/browse/LUCENE-6995
Project: Lucene - Core
Issue Type: Improvement
Components: general/build
Reporter: Uwe Schindler
Assignee: Uwe Schindler
Fix For: Trunk, 5.x
Currently build systems like Ant or Maven cannot correctly handle the following
typical Git workflow:
- You do some stuff, run some tests
- You quickly switch the branch to something else (e.g., master -> branch_5x)
- If you then run tests or compile, you get crazy error messages because all
the up-to-date checking does not work. To fix you have to run "ant clean" on
root folder.
The reason for this behaviour is how switching branches works: "it just
replaces your working copy with another verson and different file modification
dates (in most cases earlier ones!). This breaks Ant's and Javac'c uptodate
checking.
This patch will add some check to common-build (which is done before "resolve"
through a dependency of "init" task) to keep track of current branch:
- It copies {{.git/HEAD}} into the build folder as "reference point".
- Before compiling (on init), it does a file compare of current HEAD file with
the clone in build dir. If it does not yet exists (clean checkout) or if it is
identical, it just proceeds
- If the file contents changed, it will trigger "ant clean" on the LuSolr root
folder automatically and print message.
The status is passed down to sub-builds using {{*.uptodate}} property, so the
check is only done once.
Robert an I tried this out in serveral combinations, works fine.
Any comments?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]