[xoreos-git] [xoreos/phaethon] 63d1b8: COMMON: Add a XOREOS_EXPLICIT_OPERATOR_CONV macro

GitHub noreply at github.com
Sun Oct 30 01:26:33 CEST 2016


  Branch: refs/heads/master
  Home:   https://github.com/xoreos/phaethon
  Commit: 63d1b8edd1fb8a8d9448a04e503564d45318d145
      https://github.com/xoreos/phaethon/commit/63d1b8edd1fb8a8d9448a04e503564d45318d145
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/system.h

  Log Message:
  -----------
  COMMON: Add a XOREOS_EXPLICIT_OPERATOR_CONV macro

Based on Cabal, a ScummVM fork:
https://github.com/project-cabal/cabal/blob/master/common/scummsys.h


  Commit: aa3d00bea3e61acfca6346977529ff035c149a45
      https://github.com/xoreos/phaethon/commit/aa3d00bea3e61acfca6346977529ff035c149a45
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    A src/common/deallocator.h
    M src/common/rules.mk
    A src/common/scopedptr.h

  Log Message:
  -----------
  COMMON: Add ScopedPtr/ScopedArray templates

They work similar to boost::scoped_ptr and boost::scoped_array, except
that they have a release() method for ownership transferal.

std::auto_ptr could take over the job of ScopedPtr, but std::auto_ptr
won't work for array. And while std::unique_ptr fixes that issue, it's
only available starting with C++11 (and we're C++03). This means that
there is no other existing viable option to automatically manage an
array with ownership transfer than writing our own template,
ScopedArray.

ScopedPtr is provided for symmetry.

Based on Cabal code, which in turn is based on ScummVM code.
https://github.com/project-cabal/cabal/blob/master/common/ptr.h


  Commit: f80389e15d0ec24590c1224562985fd39301fdd5
      https://github.com/xoreos/phaethon/commit/f80389e15d0ec24590c1224562985fd39301fdd5
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M m4/boost.m4

  Log Message:
  -----------
  BUILD: Extend boost.m4 to check for Boost.ScopeExit


  Commit: 40f372c308e64230f66e77de69f633a9606e9eae
      https://github.com/xoreos/phaethon/commit/40f372c308e64230f66e77de69f633a9606e9eae
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M BUILDDEP.md
    M configure.ac

  Log Message:
  -----------
  BUILD: Add dependency on Boost.ScopeExit

There doesn't seem to be a check in the default FindBoost.CMake. But
since this is a header-only library and in Boost since 1.38.0, there
really shouldn't be a problem.


  Commit: d519c243ae02217356eb68e2b55ff25ec0b8bc5b
      https://github.com/xoreos/phaethon/commit/d519c243ae02217356eb68e2b55ff25ec0b8bc5b
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/deflate.cpp

  Log Message:
  -----------
  COMMON: Use ScopedArray and BOOST_SCOPE_EXIT in decompressDeflate()


  Commit: f4e154e62aecb25e00e01914a3c0c308dab2d1a7
      https://github.com/xoreos/phaethon/commit/f4e154e62aecb25e00e01914a3c0c308dab2d1a7
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/zipfile.cpp
    M src/common/zipfile.h

  Log Message:
  -----------
  COMMON: Use ScopedPtr in ZipFile


  Commit: 1491df04d0033c6c0ad316ad985117c33e03ced5
      https://github.com/xoreos/phaethon/commit/1491df04d0033c6c0ad316ad985117c33e03ced5
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/fft.cpp
    M src/common/fft.h
    M src/common/mdct.cpp
    M src/common/mdct.h

  Log Message:
  -----------
  COMMON: Use ScopedPtr/ScopedArray in the Fourier Transform classes


  Commit: 775ce2375c02de543b081ea3693b698f27591a23
      https://github.com/xoreos/phaethon/commit/775ce2375c02de543b081ea3693b698f27591a23
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/hash.h

  Log Message:
  -----------
  COMMON: Use ScopedPtr in our hash functions


  Commit: 00fd3b5ed536278920cde956e8ca4eb2b6d68528
      https://github.com/xoreos/phaethon/commit/00fd3b5ed536278920cde956e8ca4eb2b6d68528
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/blowfish.cpp

  Log Message:
  -----------
  COMMON: Use ScopedArray in our Blowfish implementation


  Commit: f93d97cccba895f02b1438de95aa08aba3e46f41
      https://github.com/xoreos/phaethon/commit/f93d97cccba895f02b1438de95aa08aba3e46f41
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/readstream.cpp

  Log Message:
  -----------
  COMMON: Use ScopedArray in ReadStream::readStream()


  Commit: d88dde87e5af1b807c1077c9f4723aa81066ef59
      https://github.com/xoreos/phaethon/commit/d88dde87e5af1b807c1077c9f4723aa81066ef59
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/platform.cpp

  Log Message:
  -----------
  COMMON: Use ScopedArray in getWindowsVariable()


  Commit: 9daedcc2b832ae57b5caf96cbbdc8c2233ff27e5
      https://github.com/xoreos/phaethon/commit/9daedcc2b832ae57b5caf96cbbdc8c2233ff27e5
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/encoding.cpp

  Log Message:
  -----------
  COMMON: Use ScopedPtr/ScopedArray in our string encoding function


  Commit: 18bc30cd1d013c1afb6a8bc755360171f106d214
      https://github.com/xoreos/phaethon/commit/18bc30cd1d013c1afb6a8bc755360171f106d214
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/aurora/biffile.cpp
    M src/aurora/biffile.h
    M src/aurora/bzffile.cpp
    M src/aurora/bzffile.h
    M src/aurora/erffile.cpp
    M src/aurora/erffile.h
    M src/aurora/keyfile.cpp
    M src/aurora/rimfile.cpp
    M src/aurora/rimfile.h
    M src/aurora/zipfile.cpp
    M src/aurora/zipfile.h

  Log Message:
  -----------
  AURORA: Use ScopedPtr/ScopedArray in our archive classes


  Commit: bec1cc0e6263fa5db91c2dfcb613ae1b322f6e97
      https://github.com/xoreos/phaethon/commit/bec1cc0e6263fa5db91c2dfcb613ae1b322f6e97
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/aurora/locstring.cpp

  Log Message:
  -----------
  AURORA: Use ScopedPtr in LocString


  Commit: 01747a1d524e96adc9a5375338f66d76f3d50117
      https://github.com/xoreos/phaethon/commit/01747a1d524e96adc9a5375338f66d76f3d50117
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/util.h

  Log Message:
  -----------
  IMAGES: Use ScopedArray in the flip* utility functions


  Commit: bd10acfb4dcf14e74e31a515bd0852e4699be325
      https://github.com/xoreos/phaethon/commit/bd10acfb4dcf14e74e31a515bd0852e4699be325
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/decoder.cpp

  Log Message:
  -----------
  IMAGES: Use ScopedPtr in the Decoder


  Commit: b688f77da8ea2000afa84d30cb276a235f9cd5ea
      https://github.com/xoreos/phaethon/commit/b688f77da8ea2000afa84d30cb276a235f9cd5ea
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/dumptga.cpp

  Log Message:
  -----------
  IMAGES: Use ScopedPtr in dumpTGA()


  Commit: c62c10f0a9074d725249635f59534b8c74f21f25
      https://github.com/xoreos/phaethon/commit/c62c10f0a9074d725249635f59534b8c74f21f25
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/winiconimage.cpp

  Log Message:
  -----------
  IMAGES: Use ScopedArray in the Windows icon decoder


  Commit: 4351e2383d3411764e3b675209c26765f224e326
      https://github.com/xoreos/phaethon/commit/4351e2383d3411764e3b675209c26765f224e326
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/dds.cpp

  Log Message:
  -----------
  IMAGES: Use ScopedPtr in the DDS decoder


  Commit: 0a0f66be27933b88d255de812a9a9c33a8df9727
      https://github.com/xoreos/phaethon/commit/0a0f66be27933b88d255de812a9a9c33a8df9727
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/tpc.cpp
    M src/images/tpc.h

  Log Message:
  -----------
  IMAGES: Use ScopedPtr/ScopedArray in the TPC decoder


  Commit: 0e70fdda15e47a630e15533e35b75ec6a02f160c
      https://github.com/xoreos/phaethon/commit/0e70fdda15e47a630e15533e35b75ec6a02f160c
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/txb.cpp
    M src/images/txb.h

  Log Message:
  -----------
  IMAGES: Use ScopedPtr in the TXB decoder


  Commit: 8bca0a7034112281c2a972812d4e603109bae7ad
      https://github.com/xoreos/phaethon/commit/8bca0a7034112281c2a972812d4e603109bae7ad
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/gui/panelpreviewimage.cpp
    M src/images/dds.cpp
    M src/images/decoder.cpp
    M src/images/decoder.h
    M src/images/dumptga.cpp
    M src/images/sbm.cpp
    M src/images/tga.cpp
    M src/images/tpc.cpp
    M src/images/txb.cpp
    M src/images/winiconimage.cpp

  Log Message:
  -----------
  IMAGES: Use ScopedArray for the Decoder MipMap data


  Commit: 8692d1f4180df1c13a6e4c84a9294f5f6da403cb
      https://github.com/xoreos/phaethon/commit/8692d1f4180df1c13a6e4c84a9294f5f6da403cb
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/sound.cpp
    M src/sound/sound.h

  Log Message:
  -----------
  SOUND: Use ScopedPtr/ScopedArray in the SoundManager


  Commit: 3c2c9bec1fa3781c931a6d9062415e08057caa15
      https://github.com/xoreos/phaethon/commit/3c2c9bec1fa3781c931a6d9062415e08057caa15
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/asf.cpp

  Log Message:
  -----------
  SOUND: Use ScopedPtr in the ASF decoder


  Commit: 994121823c1347929b07038d8aa521ea3512b0fa
      https://github.com/xoreos/phaethon/commit/994121823c1347929b07038d8aa521ea3512b0fa
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/mp3.cpp

  Log Message:
  -----------
  SOUND: Use ScopedPtr in the MP3 decoder


  Commit: 7ccb825e0e709b5578c7af65e7a5631e92b04da6
      https://github.com/xoreos/phaethon/commit/7ccb825e0e709b5578c7af65e7a5631e92b04da6
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/vorbis.cpp

  Log Message:
  -----------
  SOUND: Use ScopedPtr in the Ogg Vorbis decoder


  Commit: fba6950ffc83609d926fdd2bbe27618fc51b62d0
      https://github.com/xoreos/phaethon/commit/fba6950ffc83609d926fdd2bbe27618fc51b62d0
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/wma.cpp
    M src/sound/decoders/wma.h

  Log Message:
  -----------
  SOUND: Use ScopedPtr/ScopedArray in the WMA decoder


  Commit: ef09eaa293c4706374b1274727ce826f89f1fa3e
      https://github.com/xoreos/phaethon/commit/ef09eaa293c4706374b1274727ce826f89f1fa3e
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/gui/panelpreviewimage.cpp
    M src/gui/panelpreviewimage.h
    M src/gui/panelpreviewsound.cpp
    M src/gui/panelpreviewsound.h
    M src/gui/panelresourceinfo.cpp
    M src/gui/resourcetree.cpp

  Log Message:
  -----------
  GUI: Use ScopedPtr/ScopedArray in the GUI classes


  Commit: e1dca3d5fa696a054521a2b8d9dfef61b61c04c0
      https://github.com/xoreos/phaethon/commit/e1dca3d5fa696a054521a2b8d9dfef61b61c04c0
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    A src/common/disposableptr.h
    M src/common/rules.mk

  Log Message:
  -----------
  COMMON: Add DisposablePtr and DisposableArray templates

Similar to ScopedPtr, but with a flag that drives whether the pointer
will be deallocated.


  Commit: ad150421f533ef9819aa6c853ae31c5259d0f151
      https://github.com/xoreos/phaethon/commit/ad150421f533ef9819aa6c853ae31c5259d0f151
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/memreadstream.cpp
    M src/common/memreadstream.h
    M src/common/memwritestream.cpp
    M src/common/memwritestream.h
    M src/common/readstream.cpp
    M src/common/readstream.h

  Log Message:
  -----------
  COMMON: Use DisposablePtr/DisposableArray in our stream classes


  Commit: e162b41504148f0972d25b4b904c1992280daac4
      https://github.com/xoreos/phaethon/commit/e162b41504148f0972d25b4b904c1992280daac4
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/common/bitstream.h

  Log Message:
  -----------
  COMMON: Use DisposablePtr in the BitStream classes


  Commit: 146bd9ae43a9696bea7b1b45e50f25f7a11df3c7
      https://github.com/xoreos/phaethon/commit/146bd9ae43a9696bea7b1b45e50f25f7a11df3c7
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/sound.cpp
    M src/sound/sound.h

  Log Message:
  -----------
  SOUND: Use DisposablePtr in SoundManager::Channel


  Commit: 8b3316540a938c26aa364dd6de8879376f643c85
      https://github.com/xoreos/phaethon/commit/8b3316540a938c26aa364dd6de8879376f643c85
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/audiostream.cpp
    M src/sound/audiostream.h

  Log Message:
  -----------
  SOUND: Use DisposablePtr in LoopingAudioStream


  Commit: 41a951924d9d29bed0332c4cb8f0b702a30c3211
      https://github.com/xoreos/phaethon/commit/41a951924d9d29bed0332c4cb8f0b702a30c3211
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/adpcm.cpp

  Log Message:
  -----------
  SOUND: Use DisposablePtr in the ADPCM decoders


  Commit: 5fc3672aa4fd24ccd1c45d1fd44f34441853d2ed
      https://github.com/xoreos/phaethon/commit/5fc3672aa4fd24ccd1c45d1fd44f34441853d2ed
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/asf.cpp

  Log Message:
  -----------
  SOUND: Use DisposablePtr in the ASF decoder


  Commit: 02155b8716c23e8cb70a3b1bdbbf9b18ba21d4e1
      https://github.com/xoreos/phaethon/commit/02155b8716c23e8cb70a3b1bdbbf9b18ba21d4e1
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/mp3.cpp

  Log Message:
  -----------
  SOUND: Use DisposablePtr in the MP3 decoder


  Commit: 6f054376bde2e1e5e88f5a9100fdf9cf989b30aa
      https://github.com/xoreos/phaethon/commit/6f054376bde2e1e5e88f5a9100fdf9cf989b30aa
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/vorbis.cpp

  Log Message:
  -----------
  SOUND: Use DisposablePtr in the Ogg Vorbis decoder


  Commit: b574b1566fb12d89d6fb93b46856608b68a1483e
      https://github.com/xoreos/phaethon/commit/b574b1566fb12d89d6fb93b46856608b68a1483e
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/pcm.cpp

  Log Message:
  -----------
  SOUND: Use DisposablePtr in the PCM reader


  Commit: 30bb79837f8b91ab384a565f2700d00da2b9d4ef
      https://github.com/xoreos/phaethon/commit/30bb79837f8b91ab384a565f2700d00da2b9d4ef
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    A src/common/ptrlist.h
    M src/common/rules.mk

  Log Message:
  -----------
  COMMON: Add PtrList template

A PtrList is a list of pointers to objects, including automatic
deletion of these pointers.

PtrList is similar in concept to boost::ptr_list, however in a more
straight-forward manner:
- boost::ptr_list uses a std::list<void *> as storage, PtrList uses
  std::list<T *> directly
- Object access operations on boost::ptr_list return a reference, on
  PtrLst they return a pointer
- boost::ptr_list allows for automatic object cloning, PtrList does
  not

The reason for PtrList instead of boost::ptr_list is simply that
boost::ptr_list is broken for const objects. I.e.
boost::ptr_list<const Foo> won't work; it leads to a compile error.
Only boost::ptr_list<Foo> works.


  Commit: d0badbea7cf4f995117bbff4e0eb4508d697da2f
      https://github.com/xoreos/phaethon/commit/d0badbea7cf4f995117bbff4e0eb4508d697da2f
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    A src/common/ptrvector.h
    M src/common/rules.mk

  Log Message:
  -----------
  COMMON: Add PtrVector template

PtrVector is to boost::ptr_vector what PtrList is to boost::ptr_list.


  Commit: be58e3b8bd9b91e98a6eca32b96d9c19edf32af2
      https://github.com/xoreos/phaethon/commit/be58e3b8bd9b91e98a6eca32b96d9c19edf32af2
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    A src/common/ptrmap.h
    M src/common/rules.mk

  Log Message:
  -----------
  COMMON: Add PtrMap template

PtrMap is to boost::ptr_map what PtrList is to boost::ptr_list.


  Commit: 8e4c06e2b45adb23f19f259c98b37590e1d0bce5
      https://github.com/xoreos/phaethon/commit/8e4c06e2b45adb23f19f259c98b37590e1d0bce5
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/images/dds.cpp
    M src/images/decoder.cpp
    M src/images/decoder.h
    M src/images/tpc.cpp
    M src/images/txb.cpp

  Log Message:
  -----------
  IMAGES: Use PtrVector for the Decoder MipMaps


  Commit: 1667fdd1049f5339136e1bcf7caed123e7e4a74d
      https://github.com/xoreos/phaethon/commit/1667fdd1049f5339136e1bcf7caed123e7e4a74d
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/sound/decoders/wma.cpp
    M src/sound/decoders/wma.h

  Log Message:
  -----------
  SOUND: Use PtrVector the MDCT contexts in the WMA decoder


  Commit: da68283e6aaf9387a70559fe25986a58c381b81d
      https://github.com/xoreos/phaethon/commit/da68283e6aaf9387a70559fe25986a58c381b81d
  Author: Sven Hesse <drmccoy at drmccoy.de>
  Date:   2016-10-29 (Sat, 29 Oct 2016)

  Changed paths:
    M src/gui/mainwindow.cpp
    M src/gui/mainwindow.h

  Log Message:
  -----------
  GUI: Use PtrMap in the GUI classes


Compare: https://github.com/xoreos/phaethon/compare/b25209bf4c9a...da68283e6aaf


More information about the xoreos-git mailing list