Supporting Source Control Software

Nexacro Platform 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].

옵션_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

Updated modification list after performing the command (Removed)

Updates the modification list automatically after a command is conducted

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

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.

http://subversion.apache.org/packages.html

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.

import_repository_message

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.

import_and_checkout

Commit

This function is used to apply user-made modifications to the relevant file in the repository.

commit_popup

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.

add_popup

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.

delete_popup

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.

lock_popup

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.

unlock_popup

Item

Description

Path

Show a list of files to unlock.

Utilizing Log

Show Log

This funtion is used to display a modification log.

show_log_popup

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.

compare_with_previous_revision

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.

revert_popup

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.

repository_browser_popup

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.

repository_browser_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.

repository_browser_context_menu_file

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_output_window

SVN Explorer

This pane presents the information on the directories and files that belongs projects or repositories managed by SVN.

Check_for_Modification_window

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.

https://git-scm.com/download/win

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.