Hello,

I recently made a pull request for an exact knn algorithm, and have been
considering to start on the approximate knn algorithm and had an issue with
updating the master branch of Flink.

I am curious to know what best practices are in terms of keeping up to date
with the master branch to avoid the issue I had (to be explained below)

Some background:
-- I forked another Flink commiter's branch of Flink since he had done
other work on knn (namely https://github.com/chiwanpark/flink)
-- I imported that master branch into IntelliJ
-- I wrote code on a separate branch FLINK-1745, and that built fine.
-- I made the mistake in not using Travis CI from the start, but that was
not a huge issue since only a single import needed to be changed and my
Travis CI build goes through now.

I then checked out the master branch, and updated master via
`git pull apache master`

The master branch no longer builds, I get the following error in IngelliJ:

Error:scalac: Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-core/target/classes
is shared between: Module 'flink-storm-compatibility-core' production,
Module 'flink-storm-compatibility-core (1)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-kafka/target/classes
is shared between: Module 'flink-connector-kafka' production, Module
'flink-connector-kafka (1)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-spargel/target/classes
is shared between: Module 'flink-spargel' production, Module 'flink-spargel
(2)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/target/classes
is shared between: Module 'flink-streaming (2)' production, Module
'flink-streaming-parent' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-examples/target/test-classes
is shared between: Module 'flink-storm-compatibility-examples' tests,
Module 'flink-storm-compatibility-examples (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-rabbitmq/target/test-classes
is shared between: Module 'flink-connector-rabbitmq' tests, Module
'flink-connector-rabbitmq (2)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-elasticsearch/target/classes
is shared between: Module 'flink-connector-elasticsearch' production,
Module 'flink-connector-elasticsearch (2)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/target/classes
is shared between: Module 'flink-streaming-connectors (1)' production,
Module 'flink-streaming-connectors-parent' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-elasticsearch/target/test-classes
is shared between: Module 'flink-connector-elasticsearch' tests, Module
'flink-connector-elasticsearch (2)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-core/target/test-classes
is shared between: Module 'flink-storm-compatibility-core' tests, Module
'flink-storm-compatibility-core (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-scala/target/test-classes
is shared between: Module 'flink-streaming-scala' tests, Module
'flink-streaming-scala (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/target/test-classes
is shared between: Module 'flink-storm-compatibility (1)' tests, Module
'flink-storm-compatibility-parent' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly/target/test-classes
is shared between: Module 'flink-gelly' tests, Module 'flink-gelly (4)'
tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-rabbitmq/target/classes
is shared between: Module 'flink-connector-rabbitmq' production, Module
'flink-connector-rabbitmq (2)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-spargel/target/test-classes
is shared between: Module 'flink-spargel' tests, Module 'flink-spargel (2)'
tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-twitter/target/test-classes
is shared between: Module 'flink-connector-twitter' tests, Module
'flink-connector-twitter (2)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-twitter/target/classes
is shared between: Module 'flink-connector-twitter' production, Module
'flink-connector-twitter (2)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly/target/classes
is shared between: Module 'flink-gelly' production, Module 'flink-gelly
(4)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-kafka/target/test-classes
is shared between: Module 'flink-connector-kafka' tests, Module
'flink-connector-kafka (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/target/test-classes
is shared between: Module 'flink-streaming-connectors (1)' tests, Module
'flink-streaming-connectors-parent' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-flume/target/test-classes
is shared between: Module 'flink-connector-flume' tests, Module
'flink-connector-flume (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-examples/target/classes
is shared between: Module 'flink-streaming-examples' production, Module
'flink-streaming-examples (1)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-core/target/test-classes
is shared between: Module 'flink-streaming-core' tests, Module
'flink-streaming-core (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-examples/target/test-classes
is shared between: Module 'flink-streaming-examples' tests, Module
'flink-streaming-examples (1)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/target/classes
is shared between: Module 'flink-storm-compatibility (1)' production,
Module 'flink-storm-compatibility-parent' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-core/target/classes
is shared between: Module 'flink-streaming-core' production, Module
'flink-streaming-core (1)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/target/test-classes
is shared between: Module 'flink-streaming (2)' tests, Module
'flink-streaming-parent' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly-scala/target/classes
is shared between: Module 'flink-gelly-scala' production, Module
'flink-gelly-scala (4)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-connectors/flink-connector-flume/target/classes
is shared between: Module 'flink-connector-flume' production, Module
'flink-connector-flume (1)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-gelly-scala/target/test-classes
is shared between: Module 'flink-gelly-scala' tests, Module
'flink-gelly-scala (4)' tests
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-staging/flink-streaming/flink-streaming-scala/target/classes
is shared between: Module 'flink-streaming-scala' production, Module
'flink-streaming-scala (1)' production
Output path
/Users/danielblazevski/Dropbox/code/flink-chiwan/flink/flink-contrib/flink-storm-compatibility/flink-storm-compatibility-examples/target/classes
is shared between: Module 'flink-storm-compatibility-examples' production,
Module 'flink-storm-compatibility-examples (1)' production
Please configure separate output paths to proceed with the compilation.
TIP: you can use Project Artifacts to combine compiled classes if needed.


What is the most seamless way to
(1) pull master branch + build --- >  (2) create new branch ---> (3) make
pull request ---> (4) update master ---> (5) create new branch ----> repeat

I was able to do steps (1)-(3), but got an error on step (4).  The only
solution I can think of is a hack:  import a whole new project into
IntelliJ using the most up-to-date version of master, but that sounds silly
to do that each time I want to repeat step (4)

Thanks!
Dan

Reply via email to