Skip to main content

Easily perform merge-based rebases, i.e. rebases that don’t alter history.

You can read the full rationale behind this idea here:

What?

As a summary:

  • git checkout topic && git merge master is the wrong way to merge. Get ready for bad things to happen.

  • git checkout topic && git rebase master is better but:

    • it alters history. It is safe from merge conflicts but doesn’t guarantee that merged code works. You are losing some intermediate states of your work.

    • it is incompatible with branches you already pushed to shared repository.

psykorebase:

  • mimics the “rebase” workflow, but only using merges, no history alteration. It replays “topic” changes on top of “master” in “topic” branch (just like rebase), without deleting “topic” changes.

  • preserves all states of your code.

  • is compatible with pushed branches.

  • the main (and only?) counterpart is that there are more entries in history. There are more commits and more merges. Is that a drawback? If you look carefully, things are clear and clean. But some developers don’t like it…

Install

Currently developped against Python 2.7.x. Supports only Git for now.

sudo pip install https://github.com/benoitbryon/psykorebase/archive/master.tar.gz#egg=psykorebase

Uninstall with sudo pip uninstall psykorebase.

Usage

Git

Current, in-development prototype

psykorebase MASTER [TOPIC] performs a “psycho-rebase” of TOPIC branch on top of MASTER. Where TOPIC is optional and defaults to current branch.

Example:

git checkout master && git pull --rebase origin master  # Update master.
git checkout topic && psykorebase master  # Psykorebase topic on top of master.

Planned usage (in development)

The default, issues one merge for each (new) commit in topic branch:

git checkout topic && psykorebase master.

The quick’n’dirty, issues one big merge which includes all (new) commits from topic branch (merges heads):

git checkout topic && psykorebase --fast master

The default is safer, the --fast works well when there are poor chances of problems. CHANGELOG =========

1.0.1 (2015-07-29)

  • Fix setup.py

1.0.0 (2015-07-29)

  • Add Python3 support.

  • Add Git support

  • Add psykorebase BRANCH and psykorebase --continue functionality.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psykorebase-1.0.1.zip (13.1 kB view details)

Uploaded Source

File details

Details for the file psykorebase-1.0.1.zip.

File metadata

  • Download URL: psykorebase-1.0.1.zip
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for psykorebase-1.0.1.zip
Algorithm Hash digest
SHA256 3b93caea16fa055088ac70a469312c6f58bdf7c4cfea4d5fd31de8a98314cfe8
MD5 844569e7f39da52afcd13926201866fb
BLAKE2b-256 28afebacb6407d4fcd01aaa2899c1e572736a9cf8ca5d7276dc3f4cffea4b632

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page