Nexacro supports the connectivity with revision control software. Features may differ depending on programs.
Subversion (SVN)
Settings for Subversion
If you install a Subversion client, you can select SVN by accessing [Tools > Options > Source Control].
Nexacro Studio supports the following options for the use of Subversion.
Option | Description |
---|---|
General (Required) | |
Execute file path | Path to the executable of Subversion Command-Line Client |
Project Repository | Information on the URL and account for accessing the repository of project source codes |
Additional Repository | |
Interaction the generate path | Controls the Generate Path |
Generate Repository | Information on the URL and account for accessing the repository of generated source codes |
Project Management | |
Check SVN status when opened project | Checks file statuses automatically when opening a project |
Update file(s) when opening the project | Loads files of latest versions automatically when opening a project |
Commit file(s) when closing the project | Commits checked-out files automatically when closing a project |
File Management (xfdl, xjs files only) | |
Add file when inserted | Performs the Add command automatically when a client creates a file |
Update file when opening the file | Loads the latest version automatically when opening a file |
Commit file when saving the file | Commits a file automatically when saving the file |
Lock file when edited | Locks a file automatically while you are editing the file so that other users are not allowed to change the file |
Externals | |
Diff Viewer execute file path | Registers an external program for comparing files according to versions |
Merge Tool execute file path | Registers an external program for merging files |
Merge Tool Argument | Enter the Argument value used in Merge Tool. |
In the below menu items, you can choose one of the three options.
Commit file(s) when closing the project
Add file when inserted
Commit file when saving the file
Lock file when edited
Commit Automatically: conducts the relevant command automatically without asking the user
Prompt for Commit: asks the user whether to conduct the relevant command
Do nothing: does not conduct the relevant command anyway
You must install a Subversion client to make the SVN option activated. Nexacro Studio identifies the installation of a Subversion client by checking the related entries in Windows Registry.
If you click the [?] button at the end of the User execute file path option, you can see the information that helps you install the Subversion client.
If the version of Subversion is earlier than 1.6.0, either the SVN option does not appear in Nexacro Studio or some features do not work.
This documentation does not provide a guide for the installation of the Subversion client. You can get related information by following the below link.
Toolbar
The toolbar in Nexacro Studio provides the below features for Subversion.
INCLUDE_ERROR(ELEMENT_REMOVED)
Name | Description | |
---|---|---|
Update | Load files of latest versions from the repository | |
Commit | Apply modifications to the original files in the repository | |
Revert | Return to former status of a file by cancelling the previous task | |
Lock | Lock a file while you are editing the file to prevent other users from making a modification | |
Unlock | Unlock a file | |
Import | Register a project in the repository | |
Add | Add a new file. You can apply the added file to the repository by performing the Commit command. | |
Delete | Change the status of a file to "deleted". You can delete the relevant file in the repository by performing the Commit command. The actual file stored in your PC will not be deleted. | |
Rename | Change a file name. SVN does not have a Rename feature--it indeed deletes the existing file and adds a new file. | |
Edit Conflicts | Edit a file in the conflict state | |
Resolve | Resolve conflicts | |
Clean up | Browse a file recursively and erase error messages | |
Refresh Status | Refresh the file | |
Show Log | See the modification history | |
Compare with Previous Revision | Compare the current and previous versions and identify differences. This function executes a program registered through Diff Viewer execute file path under the Options menu. | |
Repository Browser | Launch Repository Browser |
The above functions are also provided by the menu bar of Nexacro Studio. If you want to use Subversion through the menu bar, you need to access the View menu and activate the SVN Output and Check for Modification (Project) panes.
To activate the menu bar and toolbar related to SVN, you must install a Subversion client first and then set Source Control in the menu [Tools > Options].
Authentication
In the previous stage, you learned how to set up the information on the project repository or generate repository including the URL and account. Then, you now need to access the repository to deal with the authentication. If you are successfully authenticated, there will be no message. If you fails, however, the below message will appear.
If you change the option of using SVN while working on a project unconnected to the repository, the below dialog box will appear to ask you whether to register the project in the repository. If you click "Yes", Nexacro Studio will begin the process of importing the project to the repository.
If you set the project repository only, the following pop-up will also present the project repository only. If you set the project repository and generate repository, however, the pop-up will also present both. Folders named after the projects will be automatically created under the directories that were designated as repositories.
Basic Features
Import
You can create a new project in the repository or import an existing project that is not registered. If Subversion is already in use, a new project will be imported automatically. To import an existing unregistered project, you need to access the menu [SVN > Import].
Item | Description |
---|---|
Project Repository | This is the URL of the repository for saving project source codes. A folder named after the project will be created at this address. |
Generate Repository | This is the URL of the repository for saving generated source codes. |
Import Message | Leave a message concerning the imported project. |
Include Ignored Files | Include files that Subversion is set to ignore. |
An imported project will be automatically checked out for the connectivity with Subversion.
Commit
This function is used to apply user-made modifications to the relevant file in the repository.
Name | Description |
---|---|
Message | You can leave a message about your commit. |
Path | A list of files that you will commit. |
Keep Locks | Determine whether to maintain the locks of the files to be committed. This function will be activated only when relevant files are already locked. |
Add
This function is used to add new files to the repository.
Item | Description |
---|---|
Path | Show a list of files to add. |
Performing Add merely puts selected files on the waiting list. Those files are actually added to the repository through the Commit command.
Delete
This function is used to delete files from the repository.
Name | Description |
---|---|
Message | You can leave a message about your deletion. |
Path | A list of files that you will delete |
Performing Delete merely puts selected files on the waiting list. Those files are actually deleted from the repository through the Commit command.
There are two menu items used to delete files: [Edit > Delete] and [Svn > Delete]. The difference is that, if you select [Svn > Delete], you can leave a message about the reason for the deletion.
If you delete registered files in tools other than Nexacro Studio (e.g. Windows Explorer) and the deletion is not done with the SVN features, the statuses of those files will turn to "missing". In this case, those missing files can be restored with the Update function.
Rename
This function is used to rename a file. The way this function renames a file is atypical: it copies an original file, adds the copy, renames the copy and then deletes the original. The commit command will be conducted as soon as the file is renamed.
Even if a file is renamed, you can check the history of the changes in that file by accessing the menu [SVN > Show Log].
Update
This function is used to update working copies in a user's PC based on the latest versions in the repository. The Update command is activated only after SVN statuses of files are verified. This function does not need extra inputs, only presenting the results of the execution.
Lock
Lock
This function is used to lock selected files in order to grant editing permission only to the user who accesses the files.
Name | Description |
---|---|
Message | You can leave a message about the instance of locking files. |
Path | A list of files that you will lock |
UnLock
This function is used to unlock files.
Item | Description |
---|---|
Path | Show a list of files to unlock. |
Utilizing Log
Show Log
This funtion is used to display a modification log.
Compare with Previous Revision
This funtion compares a working copy with one of the previous revisions stored in the repository and shows the differences. This function will execute a program adopted as a 'Diff Viewer execute file path' in [Options > Source Control].
The picture below shows how to run Compare with Previous Revision to compare the final revision of the main.xfdl file with the previous revision through an external Diff tool.
Basically, Nexacro Studio does not provide Diff and merge tools. You need to separately install commercial tools, open-source programs or freeware programs.
http://winmerge.org/ (open-source)
https://sourcegear.com/diffmerge/ (freeware)
Revert
This function is used to go back to the former state of a working copy by undoing the previous task.
Item | Description |
---|---|
Path | Show a list of files to revert. |
Refresh Status
This function is used to refresh the SVN statuses of working copies.
Repository Browser
This is a tool for a SVN client, which is used to display file lists in the repository and support SVN's features.
Item | Description |
---|---|
Folder Tree | Show folders in the repository in the form of a tree |
File List | Show a list of files located in the current folder. |
Right-clicking a repository will display the following context menu.
Item | Description |
---|---|
Check Out | Check out selected files and send them to the designated folder in the client PC. |
Export | Export selected files to the designated folder in the client PC. The exported files are not checked out yet and thus not connected to the repository. |
Show Log | Show a history of the modifications to the repository. |
Refresh Status | Refresh the information on the folder. |
Create Folder | Create a folder under the current repository. |
Add Folder | Add all the files in a selected folder from the client PC to the designated repository. |
Add File | Add a file from the client PC to the repository. |
Rename | Change the name of a selected repository. |
Delete | Delete a selected repository. |
Right-clicking a file will display the following context menu.
Item | Description |
---|---|
Show Log | Show a history of the modifications to the file. |
Refresh Status | Refresh the file. |
Rename | Change the name of a selected file. |
Delete | Delete a selected file. |
Save as | Create a copy of a selected file. |
Check Out
You can select a folder from the Repository Browser and check it out to a location you want.
Export
You can select a folder from the Repository Browser and export it to a location you want. The exported files will not be connected to the repository.
SVN Output
This is a pane to show the results of conducting SVN-related commands.
SVN Explorer
This pane presents the information on the directories and files that belongs projects or repositories managed by SVN.
You can filter information by clicking the buttons on the menu bar.
Name | Description | |
---|---|---|
Show unmodified | Show status of all files including those are not modified | |
Show unversioned | Show status of all files including those are not registered in SVN | |
Refresh list | Update the current list to the latest |
Subversion Status
Depending on Subversion statuses, Nexacro Studio presents the following overlay icons in the Project Explorer.
Item | Description |
---|---|
added | Set to be added to the repository |
conflicted | A conflict has occurred during the process of “Update.” |
locked | The file is locked now. |
modified | The file has been modified. |
nonversioned | Not registered in the repository |
normal | No modification yet to the file |
Git
Configure Git
Set options
After installing a Git client, go to the menu [Tools > Options > Source Control] in Nexacro Studio and select "Git" as the Source Control Management Type.
The below table presents an explanation about the options provided by Nexacro Studio for the use of Git.
Option | Description |
---|---|
General (Required) | |
Executable file path | Location of the executable of the Git client. If the git.exe file is installed in the default path, this option will be set automatically. |
User Name | Name of the person who will use the Git client |
User E-mail | Email account of the person who will use the Git client |
Git Management | |
Interact with generate path | Determine whether to manage the source code in the generate path using Git |
Push after commit | Determine whether to perform the push operation automatically as soon as a commit is made. This option is available when a remote repository is connected. |
Pull before push | Determine whether to perform the pull operation automatically as soon as the push operation is performed. This option is available when a remote repository is connected. |
Project Management | |
Pull when opening the project | With a remote repository connected, this option determines whether to fetch updates as soon as the project is opened. (Pull) |
Push when closing the project | With a remote repository connected, this option determines whether to push your changes to the remote server as soon as the project is closed. (Pull -> Push) |
File Management (only for .xfdl and .xjs files) | |
Commit added file | Determine whether to perform a commit when files are added |
Commit saved file | Determine whether to perform a commit when files are saved |
Externals | |
Diff tool path | Location of the executable of a tool, which will be executed upon the Show Diff command You cannot use Show Diff without setting this option. |
Merge tool path | Location of the executable of a tool, which will be executed upon the Edit Conflicted command You cannot use Edit Conflicted without setting this option. |
Merge tool arguments | This option allows you to enter the arguments applied to the merge tool. |
You can select one of the three choices for the below two options.
Commit added file
Commit saved file
Prompt for Commit: a commit can be performed after you check the changes
Commit Automatically: a commit will be performed automatically
Do nothing: the option will not be performed
You can see the necessary information for installing a Git client by clicking the question mark icon ([?]) on the right side of the Executable file path option.
You should install a Git client whose version is 2.13.0 or later.
If you need further information on the installation of a Git client, click the below link.
Define merge tool arguments
If you designate a merge tool used for the Edit Conflicted command, you should enter the arguments appropriate to each tool. You can see the information on the related placeholders by clicking the question mark icon ([?]) on the right side of the Merge tool arguments option.
The below table presents sets of arguments used for popular merge tools.
The patterns presented in the below table are just examples, and they can vary according to the versions of each tool.
Merge tool | Arguments |
---|---|
WinMergeU.exe | $theirs$ $mine$ $merged$ |
TortoiseMerge.exe | /base:$base$ /their:$their$ /mine:$mine$ merged:$merged$ |
CodeMerge.exe | /tf=$theirs$ /mf=$mine$ /rf=$merged$ /bf=$base$ |
Meld.exe | $theirs$ $mine$ $merged$ |
p4Merge.exe | $base$ $theirs$ $mine$ $merged$ |
sgdm.exe | /t1="Mine" /t2="Base" /t3="Their" /r=$merged$ $mine$ $base$ $theirs$ |
kdiff3.exe | $base$ $mine$ $theirs$ -o $merged$ --L1 Base --L2 Mine --L3 Theirs |
Start Project
Add a project to local repository
If you open a project that is not registered in your local repository, Nexacro Studio will ask you whether to add the project to the local repository. If you click Yes, the project will be added. Even if you click No, you can add the project later by selecting the menu [Git > Init New Repository].
Once a project is registered, the Git local repository will be initialized and then files will be added and committed.
Add a project to remote repository
You can define the settings for the connection with a remote repository by accessing the menu [Git > Set Remote Repository]. If you set the Interact with generate path option to "true", you can designate a generate repository.
Description | |
---|---|
Remote Name | This is the name of the remote repository. The default value is "origin". |
Remote URL | This is the location of the remote repository. You can use four protocol types: Local, HTTP, SSH and Git. |
Remote Branch Name | This is the name of a branch in the remote repository. Changes made in the local repository will be pushed to the foregoing branch. The default value is "master". |
Clone a project into local repository
Access the menu [Git > Clone Repository] to start a project by downloading a project registered in the remote repository into your local repository.
Description | |
---|---|
Remote Repository | This is the location of the remote repository. |
Target Path | This is the location in the local repository into which a project will be cloned. |
Open project after clone | This option determines whether to open a downloaded project automatically as soon as the Clone command is performed if the project contains its project file (.xprj). |
Once Clone is performed, the remote repository specified as the value of the Remote Repository option will be set as the remote repository for the downloaded project automatically.
Only an empty directory can be set as the value of the Target Path option. If the designated directory already contains a file or sub-directory, the Clone command will not be performed.
Delete data from remote repository
Access the menu [Git > Unset Remote Repository] to delete remote repositories that are tracked by the corresponding local repositories.
Apply Changes
Add files or change existing files
A file will be marked as "unversioned" in the Project Explorer and Resource Explorer if it is added to a project. If you change an existing file, it will be marked as "modified". The Git Explorer shows only added or modified files as well as their parent directories. The Git Explorer also lets you check the statuses of those files.
Commit changes to local repository
If you want to commit changes through the Project Explorer or Resource Explorer, select a relevant file in either explorer and then open the context menu to choose [Git > Commit]. In the Git Explorer, select a relevant file and then click the Commit button.
If you do not write a commit message, you cannot proceed with the commit because the OK button will not be activated. Therefore, write a message explaining the changes you made.
If you click the checkbox next to Push after commit, changes will be pushed to the remote repository automatically as soon as you make the relevant commit. This option is available when a remote repository is connected. Once you click the checkbox, the related option located in [Tools > Options > Source Control > Git] will be automatically changed accordingly.
Push changes to remote repository
When a remote repository is connected, you can push the commits saved in your local repository by performing the push operation. To that end, go to the menu [Git > Push] or click the Push button in the Git Explorer.
You can see the details on changes by double-clicking a certain commit in the Git Explorer or selecting the menu [Git > Push].
Resolve Conflicts
A conflict can occur if you and another user work on the same file. If a conflict occurs in a file, the file will be marked as "unmerged", and you can modify the source code by opening the file. If you set the Merge tool path option, you can edit the source code with a merge tool by selecting the menu [Git > Edit Conflicted].
When automatic merge is performed
If a local repository and the connected remote repository have different versions of a file, the below-mentioned messages may be presented after commits are pushed from the local repository. In this case, the pull operation is performed first and then the push operation follows.
If an automatic merge is successful after a pull operation, the below-mentioned messages will be printed on the Git Output pane. If the merged file is already opened, the file will be reloaded.
When conflict occurs
If an automatic merge fails after a pull operation, the below-mentioned messages will be printed, providing details on the conflict that occurred in the file.
The file with the conflict will be opened with the XML editor of Nexacro Studio. In the below picture, the code written under "HEAD" had been committed in the local repository before the execution of the pull operation. The code written under "=======" is brought from the remote repository. You can resolve the conflict by checking the difference between the two sets of code and making proper changes.
After resolving the conflict, you should perform the commit and push operations again.
Resolve conflicts with merge tool
While the XML editor of Nexacro Studio is good enough to resolve simple conflicts, it will be much better to use an external merge tool for complicated conflicts.
With a merge tool in use, your Git client creates temporary files, which are supposed to be deleted automatically when the relevant conflict is resolved and resulting changes are saved. However, such temporary files may fail to be removed from time to time. Since those temporary files are controlled by a Git client, Nexacro Studio will not delete those file arbitrarily. In this case, therefore, you should remove the temporary files by yourself if required.
Create or Switch Branch
By accessing the menu [Git > Checkout Branch], you can switch to another branch or create a new branch.
Create branch
If you enter a branch name that has not existed before, a new branch will be created.
Switch to another branch
You can switch to another branch by selecting the relevant item from the branch list.
Check branches
By accessing the menu [Git > Show Project Log] or [Git > Show File Log], you can see the information on branches, classified according to commits or files.
Description | |
---|---|
Commit | Commit SHA-1 checksum |
Message | Commit message |
Author | Person who worked on the commit |
Date | Time when the commit was made |
Branch | Information on the branches to which the commit is related. Yellow: branch that you are working on currently Green: branch in a local repository Pink: branch in a remote repository |
A window showing the information on a commit will be opened if you double-click the item or select Show Commit from the context menu.
Output Pane / Status
Git Output
This pane shows the results of Git performing tasks. If an error occurs during operation, the relevant message will be displayed in color.
Git Explorer
The Git Explorer allows you to see the changes made for a current project and perform necessary tasks. The explorer is largely divided into the Push and Commit sections. If you set the Interact with generate path option to "True", two tabs will appear at the top, dividing the Project and Generate parts.
Push
The Git Explorer shows the commits that have not been pushed yet to a connected remote repository. Click the Push button to conduct the push operation.
Commit
The Git Explorer shows the items that can be committed in a local repository. Click the Commit button after writing a commit message to perform the commit operation.
An operation done in the Project division of the Git Explorer can be applied equally to the Generate division, just like you do the same task through the main menu. For example, if you make a commit in a project, the same commit will be made in the Generate repository. However, the vice versa is not true: a task done in the Generate repository does not affect the other.
Sometimes, you cannot control the files in the Generate division from the Project Division because the files on both sides are in different states. In this case, you should go to the Generate division of the Git Explorer and control files by yourself.
Git Status
Icons indicating statuses appear in the Project Explorer or Git Explorer.
Since directories do not have their status values in Git, an icon for a directory is determined by the priorities among the statuses of children. In the above picture, the FrameBase Directory presents the Conflicted icon, resulting from the priority rules applied among the child Forms. The order of priority for status icons is presented below.
Conflicted > Modified > Added > Unmodified > Unversioned
While a project name is managed through the relevant .xprj file, the name also serves as the name of the top directory in the Project Explorer. Therefore, the icon beside a project name is influence by the statuses of the children rather than the status of the relevant .xprj file.