# nmc
**Repository Path**: ustbmde/nmc
## Basic Information
- **Project Name**: nmc
- **Description**: No description available
- **Primary Language**: Java
- **License**: EPL-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-11-06
- **Last Updated**: 2022-01-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# nmc



This tool is used for n-way model merging. It considers the base and all branch models at the same time, ranther than handling them iteratively, to match similar elements, compute the differences, detect conflicts, and merge all conflict-free differences. It also properly handles the ordered sets in models.
## Getting Started
### Prerequisites
[Eclipse IDE for Java and DSL Developers](https://www.eclipse.org/downloads/packages/release/2021-12/r/eclipse-ide-java-and-dsl-developers)
### Installation
First, start Eclipse and click File -> Import -> Git -> Projects from Git -> Clone URI.
Second, copy the uri of this repository and fill in the username and password of GitHub.
Then go to edu.ustb.sei.mde.nmc/src/edu/ustb/sei/mde/nmc/test/, and run Test* as Java Application.
### Usage example
#### Example 1
The base version had four classes. Branch 1 refactored the Person class and the Company class. Branch 2 and Branch 3 added the attributes and subclasses of the Account class. All branch versions modified the order of operation's parameter in Bank class. The result version is the result of the n-way model merging.
#### Example 2
Branch1 modified Person to Person1. Branch2 modified Person to Person2. Branch3 modified Person to Person3. These led to "single-attribute modification" conflict.
#### Example 3
Branch1 deleted Master. Branch2 added the salary attirbute of Master. Branch3 added the score and address attributes of Master. These led to "delete element but add element's references" conflict.
## License
[Eclipse Public License 2.0](https://github.com/lesleytong/nmc/blob/main/LICENSE)