Documentation External Synchronization FirstSpirit

Size: px
Start display at page:

Download "Documentation External Synchronization FirstSpirit"

Transcription

1 Documentation External Synchronization FirstSpirit Status RELEASED Department Copyright FS-Core 2018 e-spirit AG File name SYNC_EN_FirstSpirit_External_Synchronization e-spirit AG Stockholmer Allee Dortmund Germany T F info@e-spirit.com

2 Table of contents 1 Introduction Development process: simple scenario Development process: advanced scenario Restrictions Compatibility with Other FS Versions Getting started Application scenarios... 6 Components The "FSDevTools" command line tool Version control system Configuration Configuration Structuring and configuring a project Using External Synchronization (best practice) Step 1: Updating Step 2: Importing Step 3: Modifying Step 4: Exporting Step 5 Commit / Push FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 2

3 3.6 Conflict handling Simultaneous Modification of a Template Simultaneous changes to a template, different areas (disjunction) Simultaneous changes to a template, overlapping areas (conjunction) Simultaneous changes to a template, identical changes Name Space Conflicts Simultaneous creation of a page template with different content, same UID Different elements with the same UID in the same namespace (e.g., Page Store) FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 3

4 1 Introduction Support for the distributed development of FirstSpirit projects FirstSpirit projects are generally developed in a team. For distributed project development involving several team members, each team member works in their own local FirstSpirit development environment. The development processes operate at several workplaces (decentrally), at different times (asynchronously), and often at different development strands (nonlinearly). To support these projects successfully, adequate tools (such as version control systems, integrated development environments, etc.) need to be used. FirstSpirit External Synchronization supports these concepts by providing FirstSpirit objects in a format which allows developers: to export templates (and other project content) from a FirstSpirit project into a file system structure with a folder hierarchy and to import modified content from the file system structure back into a FirstSpirit project. This export/import functionality makes it possible to: FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 4

5 edit FirstSpirit objects externally (e.g., via an IDE see Simple Scenario External Editing (Chapter 1.1.1, page 6)). version FirstSpirit objects via an external version control system (therefore forming the basis for successful distributed development see Advanced Scenario Distributed Editing of FirstSpirit Objects) (Chapter 1.1.2, page 8). License In order to use the function from external components (such as the FSDevTools command line tool (Chapter 2.1.1, page 14)), it is necessary to establish a connection to the FirstSpirit Server. The API-Access license feature is required for this. Information about this documentation This documentation refers to distributed development and how FirstSpirit can support this with the FirstSpirit External Synchronization functionality. A knowledge of developing templates with FirstSpirit and of any external components that may be used is assumed. As the FirstSpirit development process is not the same in all companies and there are different ways of working with External Synchronization, this document describes best practice. This means that recommendations are provided on how External Synchronization can be best used. Other or new recommendations may arise as a result of experience with External Synchronization gathered in real projects by customers and partners. These will be constantly integrated into this document. As a result, user feedback is expressly welcomed. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 5

6 Application scenarios Development process: simple scenario In a simple scenario, the External Synchronization functionality can be used to support the collaboration between FirstSpirit and an integrated development environment ( IDE ) in the development process. The development is carried out in a local FirstSpirit project ( FirstSpirit Development Project ). From there, the relevant development state is exported to a local file system via External Synchronization. The FirstSpirit API is used for access. The corresponding commands ( fs-cli export, fs-cli import ) are called up via the FSDevTools command line tool and executed internally via the FirstSpirit API. The FirstSpirit objects exported in this way (templates, media, content, etc.) are transferred to the local file system in a readable format (xml, jsp, etc.). From there, the files can be edited via an IDE and written back into the file system again. These locally modified files can then be imported back into the FirstSpirit project via External Synchronization. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 6

7 Example: Exporting media and editing externally Step 1: Exporting templates and media folders (FirstSpirit file system) Step 2: Edit externally (file system) After the export has been completed successfully ( Export operation successful ) in the local sync directory, the files can be opened and edited in an IDE or another editor. In this example, the hex color value for the h3 heading is being set to another value. The external modification of the file (\DevProject\MediaStore\layout\css\contentFileContent.css) is saved locally (in the file system via the IDE). Step 3: Importing sync folders (file system FirstSpirit) The entire sync directory is then imported back into the FirstSpirit project via FSDevTools. FSDevTools command: fs-cli -p "DevProject" -sd D:/DevProject import FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 7

8 Result: The FirstSpirit object (MediaStore/layout/css/content) is detected as modified in the project. The modification to the CSS media object appears in the preview (after the object has been updated F5 ): Development process: advanced scenario In this scenario, several developers work on a project in a distributed manner: FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 8

9 Development within the local development environment The development is carried out in each developer s local development environment. Each developer therefore uses their own local FirstSpirit Server and their own local FirstSpirit project ( FirstSpirit Development Project ). From there, the relevant development state is exported to the local file system via External Synchronization. The FirstSpirit API is used for access. The corresponding commands ( fs-cli export, fs-cli import ) are called up via the FSDevTools command line tool and executed internally via the FirstSpirit API. The FirstSpirit objects exported in this way (templates, media, content, etc.) are transferred to the local file system in a readable format (xml, jsp, etc.). From there, the files can be edited via an IDE. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 9

10 Versioning via a version control system For a successful collaboration, the (further) development must always be carried out in the most current state possible; in other words, the modifications made by a developer must be made available in the other developers projects promptly. Each developer must also regularly export (Chapter 3.4, page 47) the development state of the FirstSpirit objects, publish their local modifications (Chapter 3.5, page 62), and update (Chapter 3.1, page 30) the changes made by other developers in their local project. The exported project content is also versioned using a version control system (here: Git). This means that each local development environment can fall back on its own local Git repository. In addition to the local repositories, there is also a further central Git repository ( remote Git repository ). Each developer pushes their modifications to the central repository. All developers involved can then adopt these changes in their own local repository and import them into the local project via External Synchronization. As a result, the local development states can be synchronized with the current (central) development state at any time. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 10

11 1.2 Restrictions FirstSpirit External Synchronization has been designed to support distributed development processes and must therefore only be used to distribute and synchronize templates (with all dependent FirstSpirit elements also required for the development process from other stores). We recommend using the FirstSpirit ContentTransport functionality for distributing editorial content. External Synchronization is not designed to transport mass data. Trans! FirstSpirit porting datasets / database content in particular can lead to a high volume of data. Information on Using External Components External Synchronization works together with external components (Chapter 2.1.2, page 17) (VCS, IDE, etc.) in the distributed development environment. These external components do FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 11

12 not form part of the FirstSpirit product. The relevant manufacturer (not e-spirit) is responsible for the functionality provided by these external components. When using the functionality, it is important to ensure that FirstSpirit provides the required interfaces for exporting and importing FirstSpirit objects but does not have an impact on the use of the exported content outside the FirstSpirit environment. Problems that occur when using the exported content in external components can be reported via FirstSpirit product support and will be rectified (if possible) if they refer to the FirstSpirit API interface. However, e-spirit is not obligated to fix bugs. 1.3 Compatibility with Other FS Versions Information on switching from a previous version of External Synchronization FirstSpirit External Synchronization functionality was introduced in FirstSpirit version 5.1. Using this, it was possible to export templates and other content from a FirstSpirit project into a file system structure with folder hierarchy and thus edit these externally. Since then, this functionality has been extensively enhanced and revised. For example, the export format has been changed and API methods added. External Synchronization now covers various requirements, particularly those which arise as a result of distributed development in concrete customer projects. When External Synchronization is mentioned in the text below, this always refers to the revised version. Modifications to export format Compatibility External Synchronization includes a new export format for FirstSpirit objects. If FirstSpirit project content had already been exported previously with an older FirstSpirit version, numerous sub-folders with the name.firstspirit will have been created (structure with the old export format). During the first export via External Synchronization, all existing sub-folders with the name.firstspirit are removed from the sync directory. A folder with the name.firstspirit is then only available on the uppermost directory level (structure with the new export format). The.FirstSpirit contains internal meta information for the successful synchronization of the external content with the FirstSpirit project. This folder must not be versioned! FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 12

13 a FirstSpirit version which still uses the old export format is upgraded or updated,! After the project in question must be fully exported so that the format changes take effect. The method setdeleteobsoletefiles must be set to true in the process. (This is the default setting when using FSDevTools (Chapter 2.1.1, page 14).) FirstSpirit versions which use the new export format (to versions which use! Downgrading the old export format) is not supported. In such cases, please contact e-spirit directly. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 13

14 2 Getting started 2.1 Components The "FSDevTools" command line tool ImportOperation and ExportOperation The External Synchronization functionality is based on interfaces which are released by e-spirit to be used by partners and customers. The following interfaces are entry points for External Synchronization: ImportOperation ExportOperation Package: de.espirit.firstspirit.store.access.nexport.operations Using the functionality via FSDevTools (recommended) The FSDevTools command line tool simplifies export and import operations between a FirstSpirit project and the file system (a target directory on the local workstation, the content of which is synchronized with a VCS if necessary) using predefined commands. FSDevTools provides secure and simple access to the External Synchronization functionality. We therefore recommend using FSDevTools when using the functionality. use with FirstSpirit External Synchronization at least FSDevTools version ! For or higher is required. As of FirstSpirit version : For use with FirstSpirit External Synchronization FSDevTools version or higher is required. Deployment From GitHub: e-spirit publishes additional functionalities at regular intervals in order to make FirstSpirit project development simpler and more convenient ( These FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 14

15 projects are developed, provided, tested in concrete internal and external scenarios, and regularly maintained by e-spirit. The FSDevTools command line tool is subject to the usual e-spirit stability and support guidelines. As part of the FSDevTools project, we are always looking for feedback, error messages, and feature requests at The source code of the project is also available on GitHub and can be forked and made available again via a pull request. (Note: With a fork, it is also possible to develop a customerspecific version of FSDevTools if required.) License In order to use the function from external components (such as the FSDevTools command line tool (Chapter 2.1.1, page 14)), it is necessary to establish a connection to the FirstSpirit Server. The API-Access license feature is required for this. Java A Java 8 installation is required for operating the FSDevTools command line tool. More requirements for operating FSDevTools can be found at: Installation Source code and documentation for the compilation, use, and functional expansion of the FSDevTools command line tool are published and available to download at: For the current version, see: The following installation packages are available for installation: FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 15

16 Tar archive (.tgz) for all Unix systems Zip archive (.zip) for Windows systems FSDevTools can be installed on the local workstation in any directory under any available, normal user account. In addition to fsdevtools-cli.jar, the relevant fs-access.jar is required to install and operate FSDevTools. Both jars must then be filed in the..\lib\ directory: Establishing a connection with the FirstSpirit Server After installation, the command line can be opened on the bin directory. All instructions relating to the command line start with the fs-cli call and the corresponding instruction. Using the fs-cli test call, a test connection is established with the FirstSpirit Server. The configuration parameters required for this (e.g., the host name) are entered directly via the command line, for example: fs-cli -h example.com.de -port c HTTP -p "DevProject" -u usera -pwd mypwd test Log output if the test is successful: ######### Test was successful ######### User: usera Host: example.com Port: 4242 Connection Mode: HTTP Project: DevProject Connection to FirstSpirit closed! Execution time: s FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 16

17 Calling up the integrated help function Information on using FSDevTools is available from the Command Line Interface Usage documentation or directly from the integrated FSDevTools help function. The integrated help function is called up via the command line: fs-cli help More information about the individual commands is available via the fs-cli help <command> call Version control system External version control systems (VSC) log and document changes to files and documents over time. A VCS can provide valuable support, even for one developer working on a project alone: For example, it allows each change relating to one branch to be isolated from the stable development state. As a result, changes can be developed in isolation from one another. At the same time, it ensures that unstable changes are not directly transferred to the stable development state. The developer does not transfer his modified artifacts back to the central master branch until a defined point in time ( Merge ). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 17

18 VCS are essential when developing in a team. In this case, far more changes by various developers have to be managed and merged. Each developer develops on their own branch and pushes modified artifacts back to the central master branch. As a result, conflicts occur where changes overlap one another. A version control system successfully merges all developers modified artifacts and automatically responds to the resulting conflicts wherever possible. Supported version control systems Git (recommended) Git is recommended for use with External Synchronization (see also Git version or higher is needed for use with FirstSpirit External Synchronization. For general notes on installing and configuring Git, see For notes on configuring Git in conjunction with External Synchronization, see link (Chapter 2.2.1, page 19). Further version control systems The use of External Synchronization with other version control systems has not yet been tested and therefore is not recommended. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 18

19 However, use with other version control systems is theoretically possible. Individual differences between the VCS must be taken into account. Example Move actions: Some VCS interpret moving from A to B as deleting in A and adding to B. Circular problems such as this have to be rectified individually on the basis of a project solution. Information on Using External Components External Synchronization works together with external components (Chapter 2.1.2, page 17) (VCS, IDE, etc.) in the distributed development environment. These external components do not form part of the FirstSpirit product. The relevant manufacturer (not e-spirit) is responsible for the functionality provided by these external components. When using the functionality, it is important to ensure that FirstSpirit provides the required interfaces for exporting and importing FirstSpirit objects but does not have an impact on the use of the exported content outside the FirstSpirit environment. Problems that occur when using the exported content in external components can be reported via FirstSpirit product support and will be rectified (if possible) if they refer to the FirstSpirit API interface. However, e-spirit is not obligated to fix bugs Configuration Configuration Information on configuring Git When using External Synchronization in conjunction with Git on Windows and non-windows systems, problems can arise with regard to line breaks, as Windows line breaks are saved in a different format to other operating systems. In line with the recommendation from the Git documentation, the core.autocrlf parameter must be set to true when a Windows system is used: $ git config --global core.autocrlf true This means that the line ends are converted into line ends that can be read by Windows during the check-out process. However, performance problems can arise as a result of this configuration. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 19

20 To ensure optimum performance, we therefore recommend using Unix line breaks, including in Windows. This can be done without any problems in most editors and IDEs. In addition, the core.eol parameter must be set to the value lf, either globally or just for the relevant project repository: $ git config --global core.eol lf Information on version management (FirstSpirit content) meta-information is not versioned! (.FirstSpirit folder)! Internal The.FirstSpirit folder on the top level of the Sync directory contains internal meta-information for the successful synchronization of external content with the FirstSpirit project. This internal data must not be versioned. If Git is used as a version control system, content can be left out of versioning using the.gitignore file, for example. In this case, the following line is added to the file:.firstspirit Configuring FSDevTools Creating a target folder for the export (in the file system) To enable data to be exported into the file system (or imported out of the file system), a target folder ( Sync Dir ) must be created in the user s local file system (for example, as a folder within a local repository) to start with. This means that each developer uses his own target folder and his own (local) repository, which may also include other versioned data in addition to the target folder: FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 20

21 The path to this target folder is then specified later when exporting and importing (using FSDevTools) (see How to Exporting project content (Chapter 3.4, page 47)).! The user must have write permissions for this target folder in the file system Structuring and configuring a project 1) Adding a central FirstSpirit project To begin with, a FirstSpirit project is created containing all content and project properties needed to develop the project, e.g.: Users Presentation channels Languages Resolutions Modules etc. 2) Structuring a FirstSpirit project (recommended) Exporting and importing FirstSpirit project content using External Synchronization should be complete and use clearly defined processes wherever possible. This helps to prevent problems resulting from incomplete project contents (in local development environments), and, as a result, conflicts. We recommend always exporting the entire Template Store. To make sure the referenced elements can also be synchronized with ease, they should be collected in a separate folder in the corresponding Store and become part of the synchronization process. This means that this folder must also be exported and imported during each synchronization process. When using database content, the corresponding CS2 objects also have to be exported and imported. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 21

22 can use Ctrl + R (or the context menu item Display extras / dependencies ) on a! You template to show which objects are dependent on the template and therefore have to be synchronized as well. We therefore recommend using a project structure in line with the following schema: Page content: Folder that contains all pages linked to the page references used as preview pages for the templates ( Properties tab). The folder can also contain sub-folders. Data sources: All of the projects datasets needed for template development. A matching data source must also be exported for each dataset. Media: A folder that contains all media needed for development. A reference to these media is normally established on the presentation channel tabs (e.g., via $CMS_REF(media:"...")$): Image files for icons Image files for buttons FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 22

23 Image files for navigation elements CSS files JavaScript files See, for example, the Layout (Chapter 1.1.1, page 7) folder on the Simple scenario page. The folder can also contain sub-folders. Site structure: A folder that contains all page references used as preview pages for the templates ( Properties tab). Global content: A folder that contains all global content referenced on the templates presentation channel tabs (e.g., via $CMS_VALUE(#global.gca("..."))$). The folder can also contain sub-folders. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 23

24 3) Creating local FirstSpirit projects In a distributed development environment, each developer works in his own local development environment. Each developer uses his own local FirstSpirit Server and his own local FirstSpirit project. The local project can be empty to begin with. The contents and settings can then be transferred out of the central FirstSpirit project (or remote repository) using External Synchronization. Alternatively, the central project can be added to the developers local servers using the Export project / Import project (ServerManager - Menu Project ) functions. of the developers and systems involved in the project must used standardized settings.! All This means that the local projects must have a standardized structure and identical project settings! Why is this important? An example: In a distributed development environment, multiple developers work on one FirstSpirit project. Using a version control system, the modified project contents and settings are distributed across multiple systems, e.g. in additional local development environments ( Development ) on a test system ( Test ) on a productive system ( Productive ) If, for example, the individual systems have a different number of languages in this scenario, this will always lead to conflicts if the project property projectproperty:languages is also transported via External Synchronization (in other words, as part of the export or import action). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 24

25 In this case, a Check-in / Export from the development system (number of languages: 2) into the VCS and then a Check-out / Import into the test system (number of languages: 10) leads to content being removed for the 8 languages not included. 4) Configuring permissions Users must hold the relevant permissions to export and import project content. Example: If objects are created in the project during an import, the user must have permission to Create objects and / or permission to Create folders. If objects are deleted during an import, permissions for Delete objects and / or Delete folders are required. actions may require administrator permissions. Server administrator permissions! Some are required to export and import server properties (users, fonts, etc.). At the very least, project administrator permissions are required to export and import project properties. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 25

26 3 Using External Synchronization (best practice) This chapter describes best practice cases for using External Synchronization in a distributed development environment. The steps described in the following apply to the developers and must be performed each time content is edited. It is important to make sure that the Import and Export steps in particular are performed after modification in order to ensure data consistency. The individual steps describe how project content is imported, modified, and exported between the file system and a FirstSpirit project. The process for managing and merging all changes is supported by a version control system. Conflicts that occur at different points during distributed development and that are not automatically dealt with by the version control system are described in the Resolving conflicts (Chapter 3.6, page 64) chapter along with specific scenarios and suggested solutions. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 26

27 Step-by-step workflow 1) Update From the repository to the file system (via VCS) Distributed development is based on a foundation of one FirstSpirit instance (or a central development state). The central development state is made available to all developers involved via a FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 27

28 remote repository. Within his own local development environment, each developer also works with his own local repository. At the start of each template editing process, the developer must collect the current state from the remote repository. In this process, all changes are first downloaded from the central repository (e.g., in Git via fetch ) and then merged with the state in the local repository. The versioned content from the local repository is transferred into the target folder ( Sync Dir ) in the local file system (e.g., in Git via checkout or pull ). During this process, external changes (made by other developers) are merged with the developer s own local changes ( merge ) For further information, see Update (Chapter 3.1, page 30). on conflict handling: Conflicts may occur when updating, particularly when merging! Notes changes. Possible conflicts and solution strategies are described under Conflict handling (Chapter 3.6, page 64). 2) Import From the file system to the FirstSpirit project (via External Synchronization) In the second step, the project s current development state is imported out of the file system into the local FirstSpirit project instance using FSDevTools (Chapter 2.1.1, page 14) (fs-cli import). During this process, objects are created, updated, moved, and deleted within the project. For further information, see Import (Chapter 3.2, page 33). 3) Modification Template development in FirstSpirit (using SiteArchitect) In step 3, the templates themselves are developed. The developer edits the templates or referenced elements, creates new templates, or deletes existing elements. In the project: Template development takes place directly within the local FirstSpirit project instance. In the file system: Theoretically, project content can also be edited directly in the file system. However, external editing does result in limitations (Chapter 3.3, page 44). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 28

29 Furthermore, all data edited externally must be imported into the local project instance to make sure the external changes are consistent. For further information, see Modification (Chapter 3.3, page 41). on conflict handling: If multiple developers are editing elements at the same time,! Notes conflicts may occur when importing data into the project and these conflicts may not be detected at VCS level (e.g., namespace conflicts in FirstSpirit). Potential conflicts and solution strategies are described under Conflict handling (Chapter 3.6, page 64). 4) Export From the FirstSpirit project to the file system (via External Synchronization) Once a stable state has been achieved following completion of work on a work package, the developer exports his current development state using FSDevTools (Chapter 2.1.1, page 14) (fs-cli export). During this process, the development state from the local FirstSpirit project instance is exported into the target folder in the file system. Objects are created, updated, moved, and deleted within the file system. This step is needed to transfer any modified content into the central development state. For further information, see Export (Chapter 3.4, page 47). 5) Commit / Push From the file system to the repository (via VCS) To start with, the development state from the target folder in the local system is confirmed in the local repository (e.g., in Git via commit ). Changes are then sent out of the local repository to the central repository (e.g., in Git using push ). The changes made by all developers involved are merged at this level ( merge ). During this process, conflicts are automatically rectified and changes are versioned. For further information, see Commit / Push (Chapter 3.5, page 62). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 29

30 Comments Information about the scenarios described The scenarios described are geared explicitly towards a distributed development model, i.e.: Multiple developers are involved. Each developer is using his own workstation with a local FirstSpirit Server. The FirstSpirit project data being edited by the developers are managed on each local FirstSpirit Server in a project DevProject The data in the FirstSpirit project DevProject are versioned using Git repository and synchronized between the developers workstations The Git repository already exists and can be accessed under the URL ssh://firstspirit.example/externalsync The Git repository is cloned in the D:\Git\DevProject directory on every workstation The scenarios use the FSDevTools command line tool (Chapter 2.1.1, page 14) (fs-cli) and the command-line-based Git client (git). workflow and its individual steps may differ if you use other tools to use External! The Synchronization and/or to version the project data. Information about documentation As the FirstSpirit development process is not the same in all companies and there are different ways of working with External Synchronization, this document describes best practice. This means that recommendations are provided on how External Synchronization can be best used. Other or new recommendations may arise as a result of experience with External Synchronization gathered in real projects by customers and partners. 3.1 Step 1: Updating From the repository to the file system In this step, the version control system is used to: FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 30

31 refresh the development state in the local repository via the remote repository and then transfer the development state from the local repository (in the target folder) into the local file system. See figure Step 1) Update (Chapter 3, page 27). Initial situation Central state (remote repository) Distributed development is based on a foundation of one central development state (in some cases, in combination with a central FirstSpirit instance), which collects the modified artifacts from all developers. In order to synchronize the local development states of all developers with the central development state, External Synchronization is used in conjunction with an external version control system (Chapter 2.1.2, page 17). All changes to the versioned content are managed in the version control system. The central development state is provided to all developers involved via a remote repository. Within his own local development environment, each developer also works with his own local repository (see figure REPO_DEV 1, REPO_DEV_2,...). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 31

32 Updating Updating the local repository For successful collaboration, the (further) development must always be carried out in the most current state possible; in other words, the modifications made other developers in the team must be transferred to your own local project as soon as possible. Before any template is edited, the latest state therefore has to be collected from the remote repository. developer must update his local repository so that it is in line with the latest version! Each directly before starting work on a work package. For this purpose, all changes are downloaded from the central repository to begin with (e.g., in Git via fetch ) and then merged with the version from the local repository. Transferring the latest state to the file system Versioned content in the target folder ( Sync Dir ) is transferred from the local repository to the local file system (the target folder is a folder within the local repository see Configuration (Chapter 2.2.1, page 20)). The required commands are executed by the developer and depend on the version control system used (e.g., in Git via checkout or pull ). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 32

33 During this process, the changes (made by other developers) are merged with the developer s own local changes ( merge ). on conflict handling: Conflicts may occur when updating, particularly when merging! Notes changes. Possible conflicts and solution strategies are described under Conflict handling (Chapter 3.6, page 64). Next steps Importing project data After a successful update, the project content can be imported into the local FirstSpirit project instance. Continue with Step 2) Import (Chapter 3.2, page 33). 3.2 Step 2: Importing From the file system into the FirstSpirit project In this step, External Synchronization is used to: import the development state from the local External Sync directory (local repository) in the file system into the local FirstSpirit project instance. The command line tool FSDevTools (fs-cli) is used for this process. See figure Step 2) Import (Chapter 3, page 27). recommend performing all export and import actions using FSDevTools.! We This tool uses pre-defined commands to automatically import and export data between the FirstSpirit project and the file system. The interfaces therefore do not have to be implemented individually (see also The "FSDevTools" command line tool (Chapter 2.1.1, page 14)). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 33

34 Initial situation What can be imported? principle, only FirstSpirit content that stems from an export with External Synchro! Innization can be imported. The following can be imported: Project content (objects): Content that is created and managed using SiteArchitect or ContentCreator. This includes templates, project structures, subtrees, and complete stores. When exporting project content via External Synchronization, it is filed according to a defined structure in the file system (see Sync directory structure (Chapter 3.4, page 58)). The system attempts to duplicate the structures from the project using a file hierarchy in the file system. Further internal information is also exported to the FirstSpirit objects, e.g., via the storeelement.xml. This file contains information such as the FirstSpirit object s ID, reference name, etc. Using this information as a basis (folder hierarchy and internal meta-information), objects can be imported from the file system back into a FirstSpirit project. Project content without this internal information cannot be imported! Conventional image files (apart from a folder hierarchy and additional information) also cannot be imported out of the target directory and into a FirstSpirit project. Project properties: Settings that are defined for a project using the ServerManager. These properties may be project-specific ( Project properties ) or global ( Server properties ) (e.g., languages). For some projects (especially in the context of FirstSpirit CaaS), user-defined project properties (custom properties) can be defined. These properties can also be exported. The following applies for all properties: If these properties (e.g., a certain language) are not available on a server, they are created on the server during the import process (as a server and project property). In this case, the technical user must possess the right permissions to create properties (see Importing project properties (Chapter 3.2, page 39)). Preparation The developer s local repository has already been updated using the version control system (see 1) Update (Chapter 3.1, page 30)). During this process, the central development state was transferred out of the remote repository. The project content and, if applicable, project properties are in the Sync directory (file system) and ready for import. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 34

35 Starting the command line tool (fs-cli) The command line is opened in the bin directory (in the FSDevTools installation directory). All instructions issued via the command line start with the call fs-cli and a corresponding instruction. D:\fs-cli\bin>fs-cli [command] Establishing a connection to FirstSpirit (fs-cli) To establish a connection to the (local) FirstSpirit server and the (local) project, the corresponding parameters (for host -h, Port-port, project name -p, user name -u, and password -pwd) are transferred, e.g.: -h example.com.de -port c HTTP -p "DevProject" -u usera -pwd mypwd To establish a connection to the file system, the path to the target folder -sd in the (local) file system also has to be specified, e.g.: -sd D:/Git/DevProject You also have the option of testing the connection using the call test, whereby the placeholder [connection_parameters] has to be replaced with the project-specific connection settings: D:\fs-cli\bin>fs-cli [connection_parameters] test Log output if the test is successful: ######### Test was successful ######### User: usera Host: example.com Port: 4242 Connection Mode: HTTP Project: DevProject Connection to FirstSpirit closed! Execution time: s FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 35

36 Importing Importing project content (fs-cli) In the next step, the current state is imported out of the local file system and into the local FirstSpirit project instance (see figure Importing ). The import process is launched with the command import, whereby the placeholder [connection_parameters] has to be replaced with the project-specific values: D:\fs-cli\bin>fs-cli [connection_parameters] import The content of the entire Sync folder is imported during the import process! Within the project new objects are created existing objects are modified existing objects are moved existing objects are removed import does not always mean that FirstSpirit objects or project properties are modified! An or added. An import process may also delete content from the project. The following applies for imported project content: If an object is exported to an external directory and then re-imported (into a different FirstSpirit project), the version history only receives the corresponding add or import actions, but not the entire version history of the object from the source project. on conflict handling: If multiple developers are editing elements at the same time,! Notes conflicts may occur when importing data into the project and these conflicts may not be detected at VCS level (e.g., namespace conflicts in FirstSpirit). Potential conflicts and solution strategies are described under Conflict handling (Chapter 3.6, page 64). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 36

37 Help function (fs-cli) Further project-specific settings for the import process can be viewed using the FSDevTools help function: D:\fs-cli\bin>fs-cli help import Recommendations for imports Distributed development is based on a foundation of one central FirstSpirit instance (or a central repository), which collects the modified artifacts of all developers (see figure below Dev_Project, Remote-Repository ). The export provided from this project must be complete and all dependencies between the individual exported objects must be taken into account (see Recommendations for exports (Chapter 3.4, page 54)). The import process for FirstSpirit project contents using External Synchronization must also be complete and must follow clearly defined processes where possible. Specific recommendations: FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 37

38 All FirstSpirit project instances involved (local target projects, central source project) should use identical settings (number of languages, etc.) (see Recommendations for imports (settings) (Chapter 3.2, page 40)). All FirstSpirit project instances involved should have a standardized structure (see Project structure (Chapter 2.2.2, page 21)). The import should always be complete (do not import stores or objects individually). This helps to prevent problems resulting from incomplete project contents (in local development environments), and, as a result, conflicts. FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 38

39 Importing database content (fs-cli) When using FSDevTools to import a database schema into a project (which does not yet contain the schema to be imported), you will be required to enter a database layer. The parameter {lm --layermapping} is used to configure the required layer during the import, e.g., via: D:\fs-cli\bin>fs-cli import -lm *:CREATE_NEW During this process (example above), the standard database (Derby) provided with FirstSpirit is activated for the project. If the schema is already in the project (into which data is being imported), information on layer mapping is not required. Further configuration options can be viewed using the help function for FSDevTools (see Examples ). Log output if mapping configuration is unavailable: Importing... Layer mapping is empty! getlayer() with context -> schema: Products Closing connection to FirstSpirit... (...) Missing mapping for source layer 'null'! Please specify a layer mapping. For more information type 'fs-cli help import'. Log output if mapping configuration is successful: Importing... Layer mapping: *:CREATE_NEW Create a default derby layer 'derby_project48910_0' for project Import operation successful Import done. The assignment information is kept for subsequent import actions. Importing project properties (fs-cli) In addition to the project content that is entered in SiteArchitect and/or ContentCreator, project properties can also be exported/imported using External Synchronization, even across servers. This method can be used, for example, to transfer the properties of a project (such as language FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 39

40 settings and resolutions) to an empty project as well as to synchronize the project configuration of multiple projects. Some project properties are dependent on server properties, e.g., users, groups, schedules, etc. These dependencies are automatically taken into account. permissions of a project administrator are a minimum requirement for importing! The and exporting project properties; server administrator permissions are required to import server properties. Recommendations for imports (settings) of the developers and systems involved in the project must used standardized settings.! All This means that the local projects must have a standardized structure and identical project settings! Why is this important? An example: In a distributed development environment, multiple developers work on one FirstSpirit project. Using a version control system, the modified project contents and settings are distributed across multiple systems, e.g. in additional local development environments ( Development ) on a test system ( Test ) on a productive system ( Productive ) If, for example, the individual systems have a different number of languages in this scenario, this will always lead to conflicts if the project property projectproperty:languages is also transported via External Synchronization (in other words, as part of the export or import action). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 40

41 In this case, a Check-in / Export from the development system (number of languages: 2) into the VCS and then a Check-out / Import into the test system (number of languages: 10) leads to content being removed for the 8 languages not included. Next steps Editing project content After a successful import, the project content can be edited in the local development environment. Continue with Step 3) Modification (Chapter 3.3, page 41). 3.3 Step 3: Modifying Creating, modifying, and deleting project content In this step, we will see how to edit project content. For this, the local development state can be changed internally using the local FirstSpirit project instance (recommended) or externally, directly in the file system (limitations apply) See figure Step 3) Modification (Chapter 3, page 27). FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 41

42 Initial situation Preparation The developer s local repository has already been updated using the version control system (see 1) Update (Chapter 3.1, page 30)). During this process, the central development state was transferred out of the remote repository. The project content and, if applicable, project properties are in the Sync directory (file system) and ready for import. Before further development, all content is imported into the local FirstSpirit project instance (see 2) Import (Chapter 3.2, page 33)). Editing project content In the FirstSpirit project (internally) Templates are developed directly in the local FirstSpirit project instance. Here you can do the following: creating objects modifying objects moving objects deleting objects. Each developer works in his own local environment. All changes between the (local) project instance and the development state in the (local) file system are performed using the export and import functions in External Synchronization : FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 42

43 In the file system (externally) At file system level, project contents and properties that are created via External Synchronization are available in a format that is legible to humans. Project contents, such as a CSS file from the project s Media Store, are also stored as a CSS file in the file system. The folder structures from the project are used in the file system. File names and further information from the project are also taken into account. This makes it easy to find and edit project content, even in the file system outside of the FirstSpirit project instance. However, this content then has to be imported back into the project (see Next steps (Chapter 3.3, page 47)). At file system level, you can modify objects move objects FirstSpirit SYNC_EN_FirstSpirit_External_Synchronization RELEASED 43

Review Version Control Concepts

Review Version Control Concepts Review Version Control Concepts SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Managing change is a constant aspect of software development.

More information

Branching and Merging

Branching and Merging Branching and Merging SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Version control branching supports the ability to manage software

More information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

Visualizing Git Workflows. A visual guide to 539 workflows

Visualizing Git Workflows. A visual guide to 539 workflows Visualizing Git Workflows A visual guide to 539 workflows Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches

More information

Github/Git Primer. Tyler Hague

Github/Git Primer. Tyler Hague Github/Git Primer Tyler Hague Why Use Github? Github keeps all of our code up to date in one place Github tracks changes so we can see what is being worked on Github has issue tracking for keeping up with

More information

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master... Table of Contents Getting the files for the first time...2 Making Changes, Commiting them and Pull Requests:...5 Update your repository from the upstream master...8 Making a new branch (for leads, do this

More information

FirstSpirit Training Program

FirstSpirit Training Program FirstSpirit Training Program Qualified employees are the capital of successful companies and a central factor for optimal web project implementation. The e-spirit training program provides your development

More information

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU Lab 01 How to Survive & Introduction to Git Web Programming DataLab, CS, NTHU Notice These slides will focus on how to submit you code by using Git command line You can also use other Git GUI tool or built-in

More information

CS314 Software Engineering Configuration Management

CS314 Software Engineering Configuration Management CS314 Software Engineering Configuration Management Dave Matthews Configuration Management Management of an evolving system in a controlled way. Version control tracks component changes as they happen.

More information

Continuous Integration (CI) with Jenkins

Continuous Integration (CI) with Jenkins TDDC88 Lab 5 Continuous Integration (CI) with Jenkins This lab will give you some handson experience in using continuous integration tools to automate the integration periodically and/or when members of

More information

Git tutorial. Katie Osterried C2SM. October 22, 2015

Git tutorial. Katie Osterried C2SM. October 22, 2015 Git tutorial Katie Osterried C2SM October 22, 2015 Outline 1 What is Git and why are we switching? 2 Working with Git 3 Branching and Merging 4 Working with remote repositories 5 Recommendations Outline

More information

Hands-On Lab. Getting Started with Git using Team Foundation Server Lab version: Last updated: 12/30/2013

Hands-On Lab. Getting Started with Git using Team Foundation Server Lab version: Last updated: 12/30/2013 Hands-On Lab Getting Started with Git using Team Foundation Server 2013 Lab version: 12.0.21005.1 Last updated: 12/30/2013 CONTENTS OVERVIEW... 3 EXERCISE 1: GETTING STARTED WITH GIT... 3 EXERCISE 2: GIT

More information

Tips on how to set up a GitHub account:

Tips on how to set up a GitHub account: Tips on how to set up a GitHub account: 1. Go to the website https://github.com/, you will see the following page: Figure 1: The GitHub main webpage (before you create an account and sign in) Then choose

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

USER GUIDE. MADCAP FLARE 2017 r3. Source Control: Git

USER GUIDE. MADCAP FLARE 2017 r3. Source Control: Git USER GUIDE MADCAP FLARE 2017 r3 Source Control: Git Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 SP2 User Guide P/N 300-009-462 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2008 2009 EMC Corporation. All

More information

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson GIT TUTORIAL Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson SCM SOFTWARE CONFIGURATION MANAGEMENT SOURCE CODE MANAGEMENT Generic term for the ability to manage multiple

More information

CS 390 Software Engineering Lecture 5 More Git

CS 390 Software Engineering Lecture 5 More Git CS 390 Software Engineering Lecture 5 More Git Reference: Scott Chacon and Ben Straub, Pro Git, published by Apress, available at https://git-scm.com/book/en/v2. Outline Finish local repository Remote

More information

Version Control. Version Control

Version Control. Version Control Version Control CS440 Introduction to Software Engineering John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng GIT CS 490MT/5555, Spring 2017, Yongjie Zheng GIT Overview GIT Basics Highlights: snapshot, the three states Working with the Private (Local) Repository Creating a repository and making changes to it Working

More information

USPAS Simulation of Beam and Plasma Systems Steven M. Lund, Jean-Luc Vay, Remi Lehe, Daniel Winklehner and David L. Bruhwiler Lecture: Software Version Control Instructor: David L. Bruhwiler Contributors:

More information

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes Git Charles J. Geyer School of Statistics University of Minnesota Stat 8054 Lecture Notes 1 Before Anything Else Tell git who you are. git config --global user.name "Charles J. Geyer" git config --global

More information

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control: How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:

More information

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018 Introduction to Git Database Systems DataLab, CS, NTHU Spring, 2018 1 Outline Version control system Git basics Git branch Remote repository 2 Outline Version control system Git basics Git branch Remote

More information

Managed Projects. Modified by Jason Howie on 31-May-2017

Managed Projects. Modified by Jason Howie on 31-May-2017 Managed Projects Old Content - see latest equivalent Modified by Jason Howie on 31-May-2017 Altium Designer 14.3, in conjunction with the latest Altium Vault, brings support for Managed Projects. In the

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

Source Management (Version Control) Installation and Configuration Guide. Version 8.0 and Higher

Source Management (Version Control) Installation and Configuration Guide. Version 8.0 and Higher Source Management (Version Control) Installation and Configuration Guide Version 8.0 and Higher July 05, 2018 Active Technologies, EDA, EDA/SQL, FIDEL, FOCUS, Information Builders, the Information Builders

More information

Tizen/Artik IoT Practice Part 4 Open Source Development

Tizen/Artik IoT Practice Part 4 Open Source Development 1 Tizen/Artik IoT Practice Part 4 Open Source Development Sungkyunkwan University Contents 2 SCM Tool: Git Version Management Local & Remote Repository Branch Management Github Contribution Process Issue

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 1 - Version control and HTML (2018-10-03) by Michael Bernstein, Scott Klemmer, Philip Guo, and Sean Kross [Announce

More information

CS 390 Software Engineering Lecture 3 Configuration Management

CS 390 Software Engineering Lecture 3 Configuration Management CS 390 Software Engineering Lecture 3 Configuration Management Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved.

More information

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21

CVS. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 21 CVS Computer Science and Engineering College of Engineering The Ohio State University Lecture 21 CVS: Concurrent Version System Classic tool for tracking changes to a project and allowing team access Can

More information

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion API Working Group Meeting, Harris County, TX March 22-23, 2016 Policies and Procedures Discussion Developing a Mission Statement What do we do? How do we do it? Whom do we do it for? What value are we

More information

Git & Github Fundamental by Rajesh Kumar.

Git & Github Fundamental by Rajesh Kumar. Git & Github Fundamental by Rajesh Kumar About me Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz www.scmgalaxy.com 2 What is git Manage your source code versions Who should use Git Anyone

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Slides by Prof. Dr. Matthias Hölzl (based on material from Dr. Andreas Schröder) Outline Lecture 1 I. Eclipse II. Git Lecture 2 IV.

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

Testking.P questuons

Testking.P questuons Testking.P2070-055.48 questuons Number: P2070-055 Passing Score: 800 Time Limit: 120 min File Version: 4.7 http://www.gratisexam.com/ P2070-055 IBM FileNet P8 System Implementation Technical Mastery Test

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

BEAWebLogic. Portal. Overview

BEAWebLogic. Portal. Overview BEAWebLogic Portal Overview Version 10.2 Revised: February 2008 Contents About the BEA WebLogic Portal Documentation Introduction to WebLogic Portal Portal Concepts.........................................................2-2

More information

Software configuration management

Software configuration management Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2017-03-27 2 Maintenance Requirements System Design (Architecture,

More information

Software Revision Control for MASS. Git Installation / Configuration / Use

Software Revision Control for MASS. Git Installation / Configuration / Use Software Revision Control for MASS Git Installation / Configuration / Use Matthew Sell, CSSE Student MASS Research Participant, February 2014 Overview Download / execute installer Initial configuration

More information

Revision control. INF5750/ Lecture 2 (Part I)

Revision control. INF5750/ Lecture 2 (Part I) Revision control INF5750/9750 - Lecture 2 (Part I) Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same

More information

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48 Git and GitHub Dan Wysocki February 12, 2015 Dan Wysocki Git and GitHub February 12, 2015 1 / 48 1 Version Control 2 Git 3 GitHub 4 Walkthrough Dan Wysocki Git and GitHub February 12, 2015 2 / 48 Version

More information

(Cloud9) and to the Remote Repository (GitHub)

(Cloud9) and to the Remote Repository (GitHub) 1 2 3 Add Commit Push Steps to Move files into the Local Repository (Cloud9) and to the Remote Repository (GitHub) Assignment Steps: Step #1: Create a GitHub account Step #2: Link Cloud9 account to GitHub

More information

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

Tools for the programming mid-semester projects

Tools for the programming mid-semester projects Contents GIT Quickstart 2 Teamwork 14 StyleCop Quickstart 14 Usage in VS2015 15 Usage in older VS versions 15 DoxyGen Quickstart 17 XML documentations 18 Doxygen 18 Please keep in mind that the remaining

More information

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019 CSCI 2132: Software Development Subversion (and Git) Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Version Control Systems A version control system allows us to Record the history

More information

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani - KTH Royal Institute of Technology SEMINAR 2-29 March 2017 Simone Stefani - sstefani@kth.se WHAT IS THIS SEMINAR ABOUT Branching Merging and rebasing Git team workflows Pull requests and forks WHAT IS THIS

More information

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A:

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A: FAQ Q: Where/in which branch do I create new code/modify existing code? A: We strongly recommend only modifying the source code within the local master branch: Git Repository View Woped repository Branches

More information

CS 320 Introduction to Software Engineering Spring February 06, 2017

CS 320 Introduction to Software Engineering Spring February 06, 2017 CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model

More information

CSC 2700: Scientific Computing

CSC 2700: Scientific Computing CSC 2700: Scientific Computing Record and share your work: revision control systems Dr Frank Löffler Center for Computation and Technology Louisiana State University, Baton Rouge, LA Feb 13 2014 Overview

More information

CVS for Moodle Developers

CVS for Moodle Developers Using the CVS CVS for Moodle Developers CVS is the Concurrent Versioning System, a commonly-used way of managing source code for large software projects. CVS keeps all versions of all files so that nothing

More information

Git version control with Eclipse (EGit) Tutorial

Git version control with Eclipse (EGit) Tutorial Git version control with Eclipse (EGit) Tutorial 출처 : Lars Vogel http://www.vogella.com/tutorials/eclipsegit/article.html Lars Vogel Version 3.6 Copyright 2009, 2010, 2011, 2012, 2013, 2014 Lars Vogel

More information

History...: Displays a window of Gitk, a standard commit viewer for Git.

History...: Displays a window of Gitk, a standard commit viewer for Git. Git Services Wakanda includes Git features that will help you manage the evolution of your solutions and files. These features are designed to share code as well as to handle multi developer projects and

More information

Version Control System GIT

Version Control System GIT Version Control System GIT Version Contol System Version (revision) control systems are software that help you track changes you make in your code over time. As you edit to your code, you tell the version

More information

Jahia Studio JAHIA DOCUMENTION

Jahia Studio JAHIA DOCUMENTION JAHIA DOCUMENTION Jahia Studio Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels to truly control time-to-market and

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6 SP1 User Guide P/N 300 005 253 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

Table of Contents. Concepts

Table of Contents. Concepts Table of Contents Git Repositories Overview Learn about Git Quickstarts Create repo - Web Create repo - CLI Create repo - Visual Studio Create repo - IntelliJ Create repo - Xcode Create repo - Eclipse

More information

Git. SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong

Git. SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong Git Prof. Jinkyu Jeong (Jinkyu@skku.edu) TA -- Minwoo Ahn (minwoo.ahn@csl.skku.edu) TA -- Donghyun Kim (donghyun.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

More information

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY AGENDA Version control overview Introduction and basics of Git Advanced Git features Collaboration Automation

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo, Lab TA: Sean Kross Lab 1 - Version control and HTML (2017-10-06) by Michael Bernstein, Scott Klemmer, Philip Guo, and

More information

Better Translation Technology. XTM Connect Change Control for GIT (backend version)

Better Translation Technology. XTM Connect Change Control for GIT (backend version) Better Translation Technology XTM Connect Change Control for GIT (backend version) Documentation for XTM Connect Change Control for GIT. Published by XTM International Ltd. Copyright XTM International

More information

Océ Posterizer Pro Designer. POP into retail. User manual Application guide

Océ Posterizer Pro Designer. POP into retail. User manual Application guide - Océ Posterizer Pro Designer POP into retail o User manual Application guide Copyright copyright-2010 Océ All rights reserved. No part of this work may be reproduced, copied, adapted, or transmitted in

More information

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Version Management

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Version Management Prof. Dr. Marko Boger Prof. Dr. Christian Johner Version Management Learning objectives Know problems a version control system can solve Master terms such as Check-out, commit, merge, pull, fetch, Master,

More information

Using the VMware vrealize Orchestrator Client

Using the VMware vrealize Orchestrator Client Using the VMware vrealize Orchestrator Client vrealize Orchestrator 7.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by

More information

Con$nuous Integra$on Development Environment. Kovács Gábor

Con$nuous Integra$on Development Environment. Kovács Gábor Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up

More information

Using Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :15:48 UTC

Using Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :15:48 UTC Using Eclipse Che IDE to develop your codebase Red Hat Developers Documentation Team 2018-12-20 14:15:48 UTC Table of Contents Using Eclipse Che IDE to develop your codebase...............................................

More information

Version Control. Version Control

Version Control. Version Control Version Control Prepared for CS 342 - Software Design by John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

USER GUIDE MADCAP LINGO Source Control: Git

USER GUIDE MADCAP LINGO Source Control: Git USER GUIDE MADCAP LINGO 10.1 Source Control: Git Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document

More information

Git for Version Control

Git for Version Control Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from http://git-scm.com/book/en/ http://www.cs.washington.edu/403/ About

More information

G E T T I N G S TA R T E D W I T H G I T

G E T T I N G S TA R T E D W I T H G I T G E T T I N G S TA R T E D W I T H G I T A A R O N H O O V E R & B R A D M I N C H J A N U A R Y 2 2, 2 0 1 8 1 Why use a version control system? Much of this document was blatantly cribbed from Allen

More information

ACE Operation Manual

ACE Operation Manual ACE Operation Manual Elecsys Director ACE Operation Manual Product Information Full information about other Elecsys products is available on our website at www.elecsyscorp.com Useful Contact Information

More information

Change and Configuration Management Administration

Change and Configuration Management Administration CHAPTER 7 Change and Configuration Management Administration These topics provide administrative information on Change and Configuration Management: Configuring Global Settings for Configuration Management,

More information

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS Davide Rossi Dipartimento di Informatica Università di Bologna Rationale for version control Control the revisions of artifacts

More information

BusinessObjects LifeCycle Manager User's Guide

BusinessObjects LifeCycle Manager User's Guide BusinessObjects LifeCycle Manager User's Guide BusinessObjects Enterprise XI 3.1 Service Pack2 windows Copyright 2009 SAP BusinessObjects. All rights reserved. SAP BusinessObjects and its logos, BusinessObjects,

More information

Intro to Github. Jessica Young

Intro to Github. Jessica Young Intro to Github Jessica Young jyoung22@nd.edu GitHub Basics 1. Installing GitHub and Git 2. Connecting Git and GitHub 3. Why use Git? Installing GitHub If you haven t already, create an account on GitHub

More information

Index A Access data formats, 215 exporting data from, to SharePoint, forms and reports changing table used by form, 213 creating, cont

Index A Access data formats, 215 exporting data from, to SharePoint, forms and reports changing table used by form, 213 creating, cont Index A Access data formats, 215 exporting data from, to SharePoint, 215 217 forms and reports changing table used by form, 213 creating, 237 245 controlling availability of, 252 259 data connection to,

More information

Online Remote Repositories

Online Remote Repositories Online Remote Repositories GitHub and Bitbucket centralized Git repositories for dissemination and collaboration Barry Grant bjgrant@umich.edu http://thegrantlab.org Recap: Client-Server vs Distributed

More information

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1 Using the VMware vcenter Orchestrator Client vrealize Orchestrator 5.5.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments

More information

Using Git to Manage Source RTL

Using Git to Manage Source RTL Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at

More information

BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE

BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE Ashwini Sharma 1 CONTENTS 1. Introduction... 2 2 Prerequisites... 2 3 Patch the SOA Server Installation... 2 4. Use

More information

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Lab 08. Command Line and Git

Lab 08. Command Line and Git Lab 08 Command Line and Git Agenda Final Project Information All Things Git! Make sure to come to lab next week for Python! Final Projects Connect 4 Arduino ios Creative AI Being on a Team - How To Maximize

More information

Introduction to Autodesk VaultChapter1:

Introduction to Autodesk VaultChapter1: Introduction to Autodesk VaultChapter1: Chapter 1 This chapter provides an overview of Autodesk Vault features and functionality. You learn how to use Autodesk Vault to manage engineering design data in

More information

A BASIC UNDERSTANDING OF VERSION CONTROL

A BASIC UNDERSTANDING OF VERSION CONTROL A BASIC UNDERSTANDING OF VERSION CONTROL DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU

More information

FEEG Applied Programming 3 - Version Control and Git II

FEEG Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Richard Boardman, Sam Sinayoko 2016-10-19 Outline Learning outcomes Working with a single repository (review) Working with multiple versions

More information

Basic git. Interactive.

Basic git. Interactive. 1 / 45 Basic git. Interactive. Emanuele Olivetti 1 Rike-Benjamin Schuppner 2 1 NeuroInformatics Laboratory (NILab) Bruno Kessler Foundation (FBK), Trento, Italy Center for Mind and Brain Sciences (CIMeC),

More information

Index. Symbols. /**, symbol, 73 >> symbol, 21

Index. Symbols. /**, symbol, 73 >> symbol, 21 17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,

More information

Office Adapters for Quark Publishing Platform

Office Adapters for Quark Publishing Platform Office Adapters for Quark Publishing Platform Contents Getting started... 1 About Quark Publishing Platform...1 System requirements... 3 Installing the Office Adapters for Quark Publishing Platform...

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

Git. Ľubomír Prda. IT4Innovations.

Git. Ľubomír Prda. IT4Innovations. Git Ľubomír Prda IT4Innovations lubomir.prda@vsb.cz support@it4i.cz VCS Version Control System Versioning - creation and management of multiple releases of a product, all of which have the same general

More information

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit

More information

REST API Operations. 8.0 Release. 12/1/2015 Version 8.0.0

REST API Operations. 8.0 Release. 12/1/2015 Version 8.0.0 REST API Operations 8.0 Release 12/1/2015 Version 8.0.0 Table of Contents Business Object Operations... 3 Search Operations... 6 Security Operations... 8 Service Operations... 11 Business Object Operations

More information

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02 SAP Mobile Platform 3.0 SP02 DOCUMENT ID: DC-01-0302-01 LAST REVISED: January 2014 Copyright 2014 by SAP AG or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced

More information

WEBCON BPS New features and improvements

WEBCON BPS New features and improvements New features and improvements 00 CONTENTS 1. Form rules engine complex form behavior made easy... 4 2. Further development of the business rules engine... 7 2.1. New operators... 7 2.2. Ergonomic improvements

More information

Xcode Release Notes. Apple offers a number of resources where you can get Xcode development support:

Xcode Release Notes. Apple offers a number of resources where you can get Xcode development support: Xcode Release Notes This document contains release notes for Xcode 5 developer preview 4. It discusses new features and issues present in Xcode 5 developer preview 4 and issues resolved from earlier Xcode

More information

Windows. Everywhere else

Windows. Everywhere else Git version control Enable native scrolling Git is a tool to manage sourcecode Never lose your coding progress again An empty folder 1/30 Windows Go to your programs overview and start Git Bash Everywhere

More information