npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mxgit

v0.0.6

Published

Small tool that helps versioning Mendix projects with git.

Downloads

44

Readme

Welcome to MXGIT

Mxgit: Small tool that helps versioning Mendix projects with git. NPM page: https://www.npmjs.org/package/mxgit

The following features of the Mendix Business Modeler will work on git repositories when using mxgit:

  • Track changes, see changed documents
  • Revert documents inside the Mendix Business Modeler
  • Investigate and solve merge conflicts

Mxgit integrates nicely in the git workflow, and should be picked up by git or any other git managing tool nicely if mxgit --install is run inside a repository. Mxgit runs on both windows and linux.

Mxgit simulates an Teamserver / SVN repository which is recognized by the Mendix Business Modeler, so that it can properly detect changes and conflicts, in the same way as when working on normal Teamserver repositories. The simulated SVN repository is recognized by the Mendix Business Modeler, TortoiseSVN and svn commandline. But, since this is not a real repository normal SVN will not work and should not be used. Mxgit works with SVN 1.7, so it should compatible with all known versions of Mendix 4 and Mendix 5.

The following function of the Modeler will not work from within the Modeler (but will work with git commands):

  • Updating and committing
  • Branching & merging
  • History
  • Adding and reverting non mpr files
  • Sandbox deployments and initiating builds in the build server will not work at all.

Installation

Prerequisites

Windows

You need to have nodejs and npm install. It can be downloaded from nodejs.org.

Linux

You need to have nodejs, npm and sqlite3 installed. On debian based systems you can install those packages by running sudo apt-get install nodejs npm sqlite3.

Installation

Just run npm install -g mxgit. You might need to run the command as administrator.

Getting started

TL;DR: Run mxgit --install in the root of your git checkout. This is not necessarly the directory of your Mendix project file, as mxgit will scan the git repository recursively for the proper .mpr file (there should only be one).

You can run this tool by executing mxgit in any directory that contains exactly one Mendix project which is not managed yet by a teamserver repository. (You can easily detach the working copy by removing the .svn directory or using the export function in (tortoise)SVN). The directory should be under git control. Use git init to initialize a new git repository if needed. mxgit commands should always be run from the root of a git repository (which is not necessarily the root of the Mendix project).

When mxgit is being run, it checks the current status of the git repository and copies it to the 'svn' status in such a way that the modeler will pick it up. This means that the tool will automatically set up the correct base revisions and conflict data if applicable. Usually, after running mxgit the model should be reopened in the modeler to make sure that the new state is picked up.

If you don't want to run mxgit manually when updating or committing to this git repository, use mxgit --install to set up git hooks. Note that the project should be closed when executing git commands like commit, merge, pull or checkout, so that the internal state of the Business Modeler doesn't get outdated. mxgit will warn if a project should be closed first.

NOTE: DO NOT USE SVN OR SVN RELATED TOOLS (SUCH AS THE MODELER BUILT-IN FUNCTIONS FOR UPDATE, COMMIT, BRANCH, MERGE, HISTORY) ON REPOSITORIES MANAGED BY GIT + MXGIT DIRECTLY, THEY WON'T WORK

Options

mxgit --install

Registers git hooks so that the mxgit command doesn't need to be called manually after pull, merging, committing etc.

mxgit --reset

Unregisters any hooks and removes all svn (meta)data. If your working copy is clean, this is a safe operation.

mxgit --setprojectid <project id>

Sets the project id to the specified id, so that the stories and deployment integration in the modeler still (partially) work, despite the fact that this project is not a real team server project. You can find the project id under the project settings of the home.mendix.com project you want to connect it to.

mxgit --precommit

Command used internally by the git hooks. Checks whether the state of the current repository is safe enough to perform a git command. Git commits should not be performed when the model still has conflicts.

mxgit --postupdate

Command used internally by the git hooks. Refreshes the base and conflict information of SVN, and should be called after any operation that might alter the current working copy. Basically the same as just running mxgit, except that some errors are ignored.

mxgit --merge base_mprfile left_mprfile right_mprfile

Command used internally by the git merge driver but can be called manually as well. Prepares the modeler for a three-way merge. It takes three filenames as parameters; base file (a common ancestor), left file ('ours') and right file ('theirs').

verbose flag (-v)

Be chatty about all the things. Use --debug to make everything even more chatty.

Known Issues

  • --setprojectid can be only once. Use --reset first to assign a new project id.
  • --install will not register git hooks if similar git hooks already exists. Please fix this manually by either calling mxgit --precommit or mxgit --postupdate
  • SVN icons, status, history etc .. doesn't make any sense
  • The modeler will always indicate that at least the project file is changed. This usually isn't the case. Check git status to be sure.

License

This tool is unofficial and not supported by Mendix; use it at your own risk. Feel free to report any issues.

Licensed under the MIT license

Developers notes

  • git clone this repository
  • run npm install to download the dependencies
  • run npm link to put the current checkout of this tool on your path

Version history

0.0.6

  • Upgrade fs-extra to be compatiable with Node.js 10.x. (#5)

0.0.5

  • Branch line of the SVN repo has been updated to 'GIT MANAGED REPOSITORY'. (#3)

0.0.4

  • Fixed some windows compatibility issues
  • No longer automatically initialize .gitignore, but only on --install.

0.0.3

  • Fixed support of .mpr file names with spaces in it.
  • The .mpr file is no longer required to be in the root of the repository.

0.0.2

  • Initial release