Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Force Overwrite

Overwrites forcefully a target connfguration with the chosen source configuration between a GIT repository and a JS7 instance.

Note
  • JOC will not support 3rd party diff tools nor will a diff tool be implemented into JOC.
  • For managing JS7 configuration objects merging means to provide a possibility to choose which state of the configuration object is the chosen one to use and in which direction it is to be populated. Effectively the chosen source configuration will forcefully overwrite the target configuration.
  • JOC does not support merging between different GIT repositories or between different branches of one GIT repository as this is standard GIT functionality and can be done with any git tools outside of JOC.

The JOC web services manage the merge force overwrite process.

A force direction has to be provided.

...

  • JS7 instance → GIT repository
    • git-add
      • Adds (new) configuration object(s) from a working copy (currently the DB) to a local repository.
    • git-delete
      • Removes an already added configuration object from the local repository.
    • git-commit
      • Commits newly added, changed or removed configuration objects to a local repository.
    • git-push
      • Pushes the changes from the local repository to the connected remote repository.
  • GIT repository → JS7 instance
    • git-checkout
      • checks out a specific branch or tag from the repository.
    • git-clone
      • clones a repository locally for the first time.
    • git-pull
      • pulls the recent changes from the remote repository into the local repository


Use Cases

Single

...

Client (Single Branch)

Usage:

  • The GIT repository is used as a backup storage for JS7 configuration objects.
  • Additionally, the GIT repository is used to version stored JS7 configuration objects.

GIT repository usage:

  • storage
  • versioning
  • rollout

RequirementsTODO

  • The JOC database is the leading system holding the current configuration objects.

dev, test, prod -

...

Single Client (Multiple Branches)

Usage:

  • The GIT repository is used as a backup storage for JS7 configuration objects.
  • Additionally, the GIT repository is used to version stored JS7 configuration objects.
  • The GIT repository is used to rollout JS7 configuration objects to different JS7 instances (e.g. dev → test → prod).

GIT repository usage:

  • storage
  • versioning
  • rolloutmerge
  • force overwrite

Requirements

...

  • The JOC database is the leading system holding the current configuration objects.
    • each JS7 instance is connected to its own database
    • each branch is connected to one JS7 instance
  • each branch has its own version
  • merges between branches have to be performed outside of JOC
  • force overwrite is possible

...

dev, test, prod - Multiple Clients (Multiple Branches)

...

Usage:

  • The GIT repository is used as a backup storage for JS7 configuration objects.
  • Additionally, the GIT repository is used to version stored JS7 configuration objects.
  • The GIT repository is used to rollout JS7 configuration objects to different JS7 instances (e.g. dev → test → prod).
  • The GIT repository is used to merge different changes from different clients in one JS7 instance outside of JOC

...

GIT repository usage:

  • storage
  • versioning
  • rolloutmerge
  • force overwrite

Requirements

  • The JOC database is the leading system holding the current configuration objects.
    • each JS7 instance is connected to its own database
    • each branch is connected to one JS7 instance
  • each branch has its own version
  • merges between branches have to be performed outside of JOC
  • merges inside one branch are performed inside of JOC but only force overwrite is supported
  • TODO
  • different versioning for different branches (dev, test, prod)

  • different users each branch can commit (Merge needed! 3rd party Tool like KDiff?)

  • DB is the leading system (???) (Single DB (dev, test, prod) needed for each branch (Security/Network issues))

  • repository used for user versioning only

  • merges from branch to branch possible

  • version can overwrite local (DB) versions as new configurations

  • new local configurstion share latest version from DB (next version +1 or next version Snapshot)