# ChangeLog for dev-vcs/hgsubversion
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*hgsubversion-9999 (09 Aug 2015)
*hgsubversion-1.8 (09 Aug 2015)
*hgsubversion-1.7 (09 Aug 2015)
*hgsubversion-1.6.3 (09 Aug 2015)
*hgsubversion-1.6.1 (09 Aug 2015)
*hgsubversion-1.4 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +hgsubversion-1.4.ebuild,
  +hgsubversion-1.6.1.ebuild, +hgsubversion-1.6.3.ebuild,
  +hgsubversion-1.7.ebuild, +hgsubversion-1.8.ebuild,
  +hgsubversion-9999.ebuild, +metadata.xml:
  proj/gentoo: Initial commit

  This commit represents a new era for Gentoo:
  Storing the gentoo-x86 tree in Git, as converted from CVS.

  This commit is the start of the NEW history.
  Any historical data is intended to be grafted onto this point.

  Creation process:
  1. Take final CVS checkout snapshot
  2. Remove ALL ChangeLog* files
  3. Transform all Manifests to thin
  4. Remove empty Manifests
  5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
  5.1. Do not touch files with -kb/-ko keyword flags.

  Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
  X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
  tests
  X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
  project
  X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
  developer, wrote Git features for the migration
  X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
  cvs2svn
  X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
  X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
  work in migration
  X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
  X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
  the bikeshed

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> hgsubversion-1.4.ebuild,
  hgsubversion-1.6.1.ebuild, hgsubversion-1.6.3.ebuild,
  hgsubversion-1.7.ebuild, hgsubversion-1.8.ebuild, hgsubversion-9999.ebuild:
  Use https by default

  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Use https by default

  Convert all URLs for sites supporting encrypted connections from http to
  https

  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
  Revert DOCTYPE SYSTEM https changes in metadata.xml

  repoman does not yet accept the https version.
  This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.

  Bug: https://bugs.gentoo.org/552720

*hgsubversion-1.8.2 (19 Sep 2015)

  19 Sep 2015; Dirkjan Ochtman <djc@gentoo.org> +hgsubversion-1.8.2.ebuild:
  version bump to 1.8.2

  Package-Manager: portage-2.2.20.1

  11 Oct 2015; Dirkjan Ochtman <djc@gentoo.org> -hgsubversion-1.6.1.ebuild,
  -hgsubversion-1.6.3.ebuild, -hgsubversion-1.7.ebuild,
  -hgsubversion-1.8.ebuild:
  remove old versions

  Package-Manager: portage-2.2.20.1

*hgsubversion-1.8.3 (11 Oct 2015)

  11 Oct 2015; Dirkjan Ochtman <djc@gentoo.org> +hgsubversion-1.8.3.ebuild:
  version bump to 1.8.3

  Package-Manager: portage-2.2.20.1

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Set appropriate maintainer types in metadata.xml (GLEP 67)

*hgsubversion-1.8.5 (20 Feb 2016)

  20 Feb 2016; Dirkjan Ochtman <djc@gentoo.org> +hgsubversion-1.8.5.ebuild:
  version bump to 1.8.5

  Package-Manager: portage-2.2.26

*hgsubversion-1.8.6 (13 May 2016)

  13 May 2016; Dirkjan Ochtman <dirkjan@ochtman.nl>
  +hgsubversion-1.8.6.ebuild:
  version bump to 1.8.6

  Package-Manager: portage-2.2.28

  13 May 2016; Dirkjan Ochtman <dirkjan@ochtman.nl>
  -hgsubversion-1.8.2.ebuild, -hgsubversion-1.8.3.ebuild:
  remove old versions

  Package-Manager: portage-2.2.28

  13 May 2016; Dirkjan Ochtman <dirkjan@ochtman.nl> hgsubversion-9999.ebuild:
  update live ebuild

  Package-Manager: portage-2.2.28

  13 May 2016; Dirkjan Ochtman <djc@gentoo.org> hgsubversion-9999.ebuild:
  fix PYTHON_USEDEP use for subversion dep

  Package-Manager: portage-2.2.28

  14 May 2016; Agostino Sarubbo <ago@gentoo.org> hgsubversion-1.8.5.ebuild:
  amd64 stable wrt bug #582900

  Package-Manager: portage-2.2.26
  RepoMan-Options: --include-arches="amd64"
  Signed-off-by: Agostino Sarubbo <ago@gentoo.org>

  25 Jun 2016; Agostino Sarubbo <ago@gentoo.org> hgsubversion-1.8.5.ebuild:
  x86 stable wrt bug #582900

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="x86"
  Signed-off-by: Agostino Sarubbo <ago@gentoo.org>

