[ 
https://issues.apache.org/jira/browse/LUCENE-6995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15117354#comment-15117354
 ] 

Uwe Schindler commented on LUCENE-6995:
---------------------------------------

bq. I guess it will force us to fix places in the build/python scripts/whatever 
that might have a hardcoded `build/` somewhere, and so on.

That is the main issue. The current patch does not add much magic, it just does 
ensure that when you change the branch that you have no build artifacts (what 
does "ant clean" does otherwise?).

I like the idea, too. The patch here is just a good first stab!

> 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
>
>         Attachments: LUCENE-6995.patch
>
>
> 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