Giter Club home page Giter Club logo

multi-magit's Introduction

multi-magit

A set of extensions to Magit for handling multiple repositories simultaneously. This documentation will only make sense if you're familiar with Magit.

Browsing Multiple Repositories

[custom variable] multi-magit-selected-repositories

This list determines which repositories the various multi-magit should operate on. You can easily select and unselect repositories using multi-magit-list-repositories.

[command] multi-magit-list-repositories

Similar to magit-list-repositories but lets you select/unselect repositories using RET.

The format of this listing is controlled via multi-magit-repolist-columns custom variable, which has the same format as magit-repolist-columns. Use magit-repository-directories and magit-repository-directories-depth to control which repositories will be listed.

[command] multi-magit-list-branches

List all branches in all of your repositories, grouping branches with the same name. RET will select the applicable repositories and multi-magit-checkout the branch at point. C-k deletes the branch at point in the applicable repositories.

Use magit-repository-directories and magit-repository-directories-depth to control which repositories will be listed.

[command] multi-magit-status

Like magit-status but aggregates all of the multi-magit-selected-repositories.

We recommend binding it globally to C-x G:

(global-set-key (kbd "C-x G") 'multi-magit-status)

multi-magit-status-sections-hook determines which sections will be inserted for each repo. It accepts the same sections as magit-status-sections-hook but defaults to lightweight sections focused on giving you a quick overview of each repository.

[custom variable] multi-magit-refresh-status-buffer

Whether the multi-magit-status buffer is refreshed after running git.

When this variable and magit-refresh-status-buffer are both non-nil, multi-magit's status buffer is automatically refreshed after running git for side-effects on a selected repository.

Multi-repository Commands

[command] multi-magit-checkout

Checkout a given branch on each of the selected repositories. Lists suggestions based on branch names that are common across every repository.

[command] multi-magit-branch-delete

Delete a given branch on each of the selected repositories. Lists suggestions based on branch names that are common across every repository.

[command] multi-magit-git-command

Execute a git command for each selected repository.

[command] multi-magit-shell-command

Execute a shell command for each selected repository.

Repository Overview for magit-status

[section] multi-magit-insert-repos-overview

Add this to magit-status-sections-hook to include a one-line overview for each selected repository showing the repository name, the current branch and quick status showing an untracked/staged/unstaged file count.

(magit-add-section-hook 'magit-status-sections-hook
                        'multi-magit-insert-repos-overview
                         nil t)

multi-magit's People

Contributors

bjacquet avatar luismbo avatar sergey-pashaev avatar unhammer 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

Watchers

 avatar  avatar  avatar  avatar  avatar

multi-magit's Issues

'multi-magit-list-branches fails with "cannot find 'second' " error.

The fix is to replace the "second" list selector:

diff --git a/multi-magit.el b/multi-magit.el
index 0864a58..f71cc58 100644
--- a/multi-magit.el
+++ b/multi-magit.el
@@ -525 +525 @@ repositories are displayed."
-                                         (--map (second (split-string it " " t))
+                                         (--map (car (cdr (split-string it " " t)))

Inconsistent use of star suffix in buffer names

Some of the multi magit buffers do not get a star suffix. The fact that the multi magit buffers start with a star * suggests to me that they are meant to be treated like other starred buffers such as *Messages* or *Help*. The lack of a star suffix causes functions such as ibuffer-filter-by-starred-name to not work with them.

Some buffers have a prefix and suffix:

(with-current-buffer (get-buffer-create "*Multi-Magit Repositories*")

(with-current-buffer (get-buffer-create "*Multi-Magit Branches*")

Whereas these do not have a suffix:

(get-buffer-create "*multi-magit-process"))

(defvar multi-magit-status-buffer-name "*Multi-Magit Status")

Screenshots?

Hey, some screenshots would be great, would really help users understand what this does. :)

No more magit-log-section-arguments

No more magit-log-section-arguments variable in magit.

         (magit-git-wash #'magit-diff-wash-diffs
                         "diff" merge-base "HEAD" "--stat" "--numstat" "--no-prefix")
         (insert "\n")
-        (magit-insert-log (format "@{upstream}..") magit-log-section-arguments)))))
+        (magit-insert-log (format "@{upstream}.."))))))

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.