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]

Reply via email to