Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checkout directory state check delegated to plugins #13

Open
arcanefoam opened this issue Jun 2, 2017 · 1 comment
Open

Checkout directory state check delegated to plugins #13

arcanefoam opened this issue Jun 2, 2017 · 1 comment

Comments

@arcanefoam
Copy link
Contributor

Currently, the Ecco service (via DispatchWriter) checks that the output directory is empty before delegating to the plugin writter. I understand that this is wanted as currently Ecco does not provide a merge/conflict resolution mechanism.
I think this check and the actions taken should be delegated to the plugins. For example, in the EMF plugin I don't want to commit the metamodel (.ecore) but I need it to be there so I can open the model. This will also imply that I can have other files that I need, for example the folder micht contain IntelliJ or Eclipse files that indicate that the folder is a project.
The plugin can then decide if it will have a strong policy: the directory must be empty, or if it does something else: e.g. ask the user if files shuold be replaced, open the files with no append so the contents are overwritten, etc.
For backwards compatibility, it is easy to make the existing projects provide the strong policy.

@meik99
Copy link
Contributor

meik99 commented Jun 15, 2023

I am not sure if the plugins handling it is the way to go, e.g., if there are two different file types, like an image and source code, plugins could run into conflicts with each other that need to be resolved by each then.

With removing the constraint of having to have an empty directory, however, I agree.

IMO the first step should be to have the option of deleting the contents of the directory on checkout, with merge-conflict resolution as a close second one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants