G

gitlab-ce

kirr's gitlab tree

Forked from nexedi / gitlab-ce

  • Kirill Smelkov's avatar
    NXD Teach GitLab about patches · 827d3914
    Kirill Smelkov authored
    Teach GitLab not only to merge changes from a merge-request, but also to
    apply patches posted to merge-request in a way like `git am` would do -
    without merge commit and directly on top of current branch. Which way to
    go is selected by user in web UI, and apply patches is the first option.
    
    There are 3 cases:
    
    - only 1 commit is present in MR -> the only available option is to
      apply that single commit as one patch without a merge
    
      ( There is no need for merge commit in this case at all: information
        about user who applied the patch goes to "Committer" field in resultant
        commit. Avoiding 1 merge per 1 patch results in cleaner history )
    
      It is also possible to review patch description directly in web UI,
      before doing the actual application, and correct / amend it as needed.
    
    - several commits are present in MR:
    
      * it is possible to apply the patches directly on top of current
        branch. Again information about who applied what goes to "Committer"
        field.
    
      * it is possible to merge MR changes with making a merge commit.
    
        This variant is useful, when patches from a MR do several logical
        steps to reach one goal, and MR description contain cover letter for
        whole patch series.
    
        in this case original commits stay untouched and resulting merge
        will contain MR author as author, user who accepted MR as committer,
        and cover letter as merge commit message.
    
        NOTE we avoid useless "Merge branch X into Y" in merge message, and
            just put MR title into merge subject and MR description into merge
            description.
    
            This way it is more logical with more important information in
            merge subject and thus e.g. more handy to oversee what a merge brings,
            just by it subject, e.g. via looking at updates via
    
                gitk --first-parent ...
    
            or via web.
    
    NOTE for pre-generated references to merge-request we now use full MR
        URL, instead of !<MR-n>. Full URLs work everywhere, not only on
        original site where MR was created, or even only in original repo
        and not its fork on the same site.
    827d3914
Name
Last commit
Last update
app Loading commit data...
bin Loading commit data...
builds Loading commit data...
config Loading commit data...
db Loading commit data...
doc Loading commit data...
docker Loading commit data...
features Loading commit data...
fixtures/emojis Loading commit data...
lib Loading commit data...
log Loading commit data...
public Loading commit data...
scripts Loading commit data...
shared Loading commit data...
spec Loading commit data...
tmp Loading commit data...
vendor/assets Loading commit data...
.flayignore Loading commit data...
.foreman Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.hound.yml Loading commit data...
.pkgr.yml Loading commit data...
.rspec Loading commit data...
.rubocop.yml Loading commit data...
.ruby-version Loading commit data...
.simplecov Loading commit data...
.teatro.yml Loading commit data...
CHANGELOG Loading commit data...
CONTRIBUTING.md Loading commit data...
GITLAB_SHELL_VERSION Loading commit data...
GITLAB_WORKHORSE_VERSION Loading commit data...
Gemfile Loading commit data...
Gemfile.lock Loading commit data...
LICENSE Loading commit data...
MAINTENANCE.md Loading commit data...
PROCESS.md Loading commit data...
Procfile Loading commit data...
README.md Loading commit data...
Rakefile Loading commit data...
VERSION Loading commit data...
config.ru Loading commit data...
doc_styleguide.md Loading commit data...
docker-compose.yml Loading commit data...