diff options
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 31 | ||||
-rw-r--r-- | README.md | 70 |
4 files changed, 121 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..7ed0aee8812a --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = git-merge-changelog-git + pkgdesc = git merge driver for GNU style ChangeLog files. + pkgver = 0.1.r3232.gffcdc4580 + pkgrel = 1 + url = http://savannah.gnu.org/projects/gnulib + arch = i686 + arch = x86_64 + license = GPLv2 + makedepends = git + provides = git-merge-changelog=0.1.r3232.gffcdc4580 + source = git://git.savannah.gnu.org/gnulib.git + sha256sums = SKIP + +pkgname = git-merge-changelog-git + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..b2eb93a6b343 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +pkg/ +src/ +*.pkg.tar.xz +*.tar.gz +gnulib/
\ No newline at end of file diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6649fe851938 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Andrey Novikov <envek@envek.name> + +pkgname=git-merge-changelog-git +pkgdesc="git merge driver for GNU style ChangeLog files." +pkgver=0.1.r3232.gffcdc4580 +pkgrel=1 +arch=('i686' 'x86_64') +url="http://savannah.gnu.org/projects/gnulib" +license=('GPLv2') +provides=("git-merge-changelog=${pkgver}") +makedepends=('git') +source=("git://git.savannah.gnu.org/gnulib.git") +sha256sums=('SKIP') + +pkgver() { + cd "$srcdir/gnulib" + git describe --always --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + cd "$srcdir/gnulib" + ./gnulib-tool --create-testdir --dir="$srcdir/$pkgname-$pkgver" git-merge-changelog + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir/" install +} diff --git a/README.md b/README.md new file mode 100644 index 000000000000..6c0baa949b3f --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# git-merge-changelog + +GNU utility to automatically resolve conflicts in prepend-only files (like CHANGELOG). + +## Usage + +### git + + - Add to `.git/config` of the checkout (or to your `$HOME/.gitconfig`) the lines + + [merge "merge-changelog"] + name = GNU-style ChangeLog merge driver + driver = /usr/bin/$pkgname/git-merge-changelog %O %A %B + + - In every directory that contains a ChangeLog file, add a file `.gitattributes` with this line: + + ChangeLog merge=merge-changelog + + (See "man 5 gitattributes" for more info.) + + +### bzr + + - Install the 'extmerge' bzr plug-in listed at <http://doc.bazaar.canonical.com/plugins/en/index.html> and <http://wiki.bazaar.canonical.com/BzrPlugins> + + - Add to your $HOME/.bazaar/bazaar.conf the line + + external_merge = git-merge-changelog %b %T %o + + - Then, to merge a conflict in a ChangeLog file, use + + $ bzr extmerge ChangeLog + + +### hg + + - Add to your $HOME/.hgrc the lines + + [merge-patterns] + ChangeLog = git-merge-changelog + + [merge-tools] + git-merge-changelog.executable = /usr/bin/git-merge-changelog + git-merge-changelog.args = $base $local $other + + See <https://www.selenic.com/mercurial/hgrc.5.html> section merge-tools for reference. + + +## Upgrading AUR package + + 1. Change version in the `PKGBUILD` + + 2. Update `.SRCINFO` file: + + ```sh + makepkg --printsrcinfo > .SRCINFO + ``` + + 3. Build package + + ```sh + makepkg + ``` + + 4. Commit and push changes + + +## Links + + - [Automagically merging ChangeLog files with mercurial or git](https://gnu.wildebeest.org/blog/mjw/2012/03/16/automagically-merging-changelog-files-with-mercurial-or-git/) |