Git Product home page Git Product logo

git-sync-changes's Introduction

Collaborative editing for git repositories

This repository implements shared worktrees for git.

This is done by storing the worktree state in the repository itself.

The result is that anyone with push permissions on the repository can sync their local worktree with that shared worktree, and then view and edit pending changes prior to committing them.

Disclaimer

This is not an official Google product.

Installation

To install, simply copy the git-sync-changes script to somewhere in your PATH.

Usage

The shared worktree functionality is implemented with a new git command called git-sync-changes. Running that command will sync pending changes between your local worktree and the shared worktree, leaving the two in the same state.

The command takes two optional parameters, the remote repository storing the shared worktree, and the name of that tree.

For example:

git sync-changes origin shared-work

will sync your local worktree with the worktree named shared-work in the remote named origin.

If the worktree name is not specified, the tool will default to a worktree named after the current user and the current checked-out branch.

If the remote is not specified, then it defaults to origin.

Each invocation of the command only performs a single sync, so to keep your worktree continuously updated, run it periodically.

For instance, you could run the command in a loop with something like:

( while [ 1 ]; do
    git sync-changes
    sleep 30
  done)

git-sync-changes's People

Contributors

ashleyswang avatar ojarjur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

git-sync-changes's Issues

pre-sync verification and error messages

It would be nice to add some verification before the sync process is actually executed. Things to check for would include:

  • verification that the working directory is in a git repository
  • initial connectivity check (check that we can connect to the remote repository)

We would also like more information about failures to be available through the error messages. These include:

  • reporting what caused the sync failure (ie. commit conflicts/connectivity issues)
  • reporting which files have conflicts in the case of a conflict

bug during initial sync

On the initial sync, the sync procedure is overly cautious and views some untracked files as a conflict. For example .gitinore files must be added and stashed before git-sync-changes can be run.

A fix should be made so that intended untracked files do not have to be added and stashed before doing the initial run of git-sync-changes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.