Giter Site home page Giter Site logo

Comments (8)

benawad avatar benawad commented on June 27, 2024 3

We are using git mv, so I think that should prevent any merge conflicts related to the file being moved/renamed. Haven't tested that yet though, so not 100% sure.

from destiny.

waynevanson avatar waynevanson commented on June 27, 2024

Love what you have here.

My two cents on watch mode: I feel like this package should be part of a git workflow and not watch mode at all.

I would personally use this package only after my tree is clean and I'm about to push. Similar to how yarn publish will auto commit the bump of a version number in package.json.

Config files are gross, but what other options are there? We could just put them inline as CLI args in package.json. So destiny --arg-one value --arg-2-as-boolean

from destiny.

sQVe avatar sQVe commented on June 27, 2024

@waynevanson I agree and think one of the major issues we need to solve is how to use destiny in a project using git or any other version control solution. Moving and renaming files can be such a hassle for merge conflicts.

I do not really envision destiny to be a tool that should run automatically but rather a tool that you run at specific times when you and your team members are all in sync.

from destiny.

waynevanson avatar waynevanson commented on June 27, 2024

@sQVe I just added to my comment if you'd like to see more.

Moving and renaming files can be such a hassle for merge conflicts.

Yeah that looks like a huge pain. I wonder what will be the solution.

In teams, it would be harder to use on an automatic basis. I agree with you.

from destiny.

ganapativs avatar ganapativs commented on June 27, 2024

We are using git mv, so I think that should prevent any merge conflicts related to the file being moved/renamed. Haven't tested that yet though, so not 100% sure.

There will be conflicts if the team/individual use squash and merge when merging. This should be added to FAQ probably.

Watch mode?

Also, I completely agree that probably there should not be a watch mode. Watch mode complicates things a lot and might not really be useful in most of the cases.

from destiny.

benawad avatar benawad commented on June 27, 2024

@ganapativs What would be the sequence of steps to replicate the conflict? Are you thinking:
User 1 git move a file
User 2 make a change in that file then squash, then pull User 1 changes

from destiny.

ganapativs avatar ganapativs commented on June 27, 2024

This probably should work(Needs testing)

User 1 git moves the file(say in fresh branch-1 from the master)
User 2 edits the same file(in fresh branch-2 from the master, may be just editing the imports in the
same file should work)
User 2 squashes and merges his changes to master
User 1 takes the pull(should probably get the conflict as User 2 changes history is lost when squashed)

Optionally, User 2 should get conflicts if User 1 changes are squashed and merged first.

This happened to me many times in large PRs, I expect it to happen here also.

from destiny.

sQVe avatar sQVe commented on June 27, 2024

@ganapativs Squashing is not relevant in your example. Squashing problems will occur when you branch from a commit that later in time gets squashes - for example a feature branch that is based on another feature branch. What your example is explaining is just a simple merge conflict due to two parts changing the same thing. This is nothing that we'll be able to solve and will have to be handled manually.

What we do is make the merge conflicts easier by marking moved files as moved in Git.

from destiny.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.