2013-07-02  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* tag: v0.2.2
	* doc: add man page
	* doc: add inside.md documenting some internals of reiserfs-defrag
	* rfsd: add configurable binary installation path. Use SBINDIR
	cmake variable to specify it.

2012-12-15  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* tag: v0.2.1
	* rfsd: fix sparse block handling in moveObjectsUp
	* rfsd: tolerate duplicate entries in file list (by removing
	duplicates)
	* rfsd: rename binary `rfsd' to `reiserfs-defrag'
	* rfsd: explicitly state license for code. GPLv3
	* rfsd: update content of README.md

2012-12-14  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* tag: v0.2
	* rfsd: this will be version v0.2
	* rfsd: add prepocessor checking of endiannes. Prevent building on
	everything except little-endian.
	* rfsd: move specified files to beginning of partition. File names
	should be supplied in external file
	* rfsd: allow changing of block cache max size via command line
	parameter
	* rfsd: fix minor bug in recursivelyGetBlocksOfObject which could
	lead to incomplete defragmentation of files larger than 30 MB

2012-12-02  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: add method that guesses key type and uses it for key
	comparison. The same method used in reiserfs driver itself.
	* rfsd: use unions in key_t struct to extract key parts.

2012-11-26  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: add additional checks for all tree nodes read.

2012-11-24  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: add superblock sanity checks

2012-11-19  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: add command-line switch controlling data journaling. Specify
	--journal-data to enable journaling not only meta-data but data also.

2012-11-15  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: use own assertion macroses (assert{1,2}) both in release
	and in debug versions
	* rfsd: stop operation if read or write error occured
	* rfsd: print read/write positions with timestamps (disabled by default)
	* rfsd: fix recursive caching bug
	* rfsd: combine read/writes for unformatted blocks thus improving
	speed a bit

2012-11-09  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: fix progress bar bug on extremely narrow terminals

	tag:v0.1
	* Version 0.1
	* ChangeLog: use change log
	* rfsd: notion of allocation groups. Each of them maintains list of
	free extents in sorted order to speedup and amend free blocks
	allocation. Can have size of 128 MiB, 256 MiB or 512 MiB. Now 128.
	* rfsd: continuous extent allocator. Either allocated continuous
	extent of asked size or fails.
	* rfsd: introduced squeezing of AG. All data blocks in AG moved to its
	beginning therefore creating large free extent at its end. Maintains
	data block order.
	* rfsd: introduced sweeping of AG. Which is effectively first part of
	squeezing. Moves blocks away from allocation group.
	* rfsd: add "forbidden AG" parameter to allocateFreeExtent
	* rfsd: avoid including leaf containing first indirect item of file
	to its ideal block order
	* rfsd: implement incremental defrag. Large file will be processed
	by piecemeal.
	* rfsd: implement nice progress bars and use them.
	* rfsd: estimate amount of work beforehand.
	* rfsd: try to free some continuous space in case of allocation
	failure. AG selected by score which depend both on its free space
	fragmentation and some random value. Thus deadlocks avoided.
	* rfsd: use progress bars in treeThroughDefrag
	* rfsd: basic command-line processing
	* rfsd: print usage on --help
	* rfsd: introduced 'none' type defragmentation that do nothing
	* misc: drop tuxonizer.
	* rfsd: dump errors to stdout instead of stderr to ease logging
	* rfsd: use several passes for incremental defrag. Exit early if
	no files need defragmentation
	* rfsd: allow user to interrupt process by gracefully ending current
	operation.
	* rfsd: added optional squeeze stage with tunable threshold
	* rfsd: fix bug in handling filesystems of sizes not multiple of
	AG size. Stricter checks of movemap inconsistency.


2012-10-07  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	tag:tree-through-v2
	* rfsd: using leaf index to speedup lookup leaf node by block indices
	it refers.
	* rfsd: change move block functions to traverse subset of tree
	* rfsd: split up huge move job into smaller chunks
	* rfsd: implement treeThroughDefrag -- iterative version of previous
	attempts.
	* rfsd: fix bug with sparse files handling which caused rfsd stop
	in panic.

2012-09-16  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	tag:journaling-merge
	* rfsd: merge transaction into larger one, significantly improves
	speed.

2012-09-14  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	tag:journaling
	* rfsd: journaling support. All writes to filesystem from now performed
	by transactions.
	* rfsd: switch from fsync to fdatasync as it's slighly faster.

2012-09-12  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: basic read cache. Block that read remains in memory for some
	time in hope that they can be read again in nearby future. Add cache
	statistics.

2012-09-07  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: working defragmentation, but far away from optimal. Creates
	'ideal' data layout and tries to move all blocks that can be moved
	to their final position.

2012-09-04  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	tag:blockmover
	* rfsd: make code actually move blocks with corresponding changes to
	metadata structures
	* misc/moveback: moves all blocks to beginning of file system
	* misc/shuffler: randomly shuffles blocks
	* misc/tuxonizer: imprint Tux logo on filesystem


2012-08-22  Rinat Ibragimov  <ibragimovrinat@mail.ru>

	* rfsd: first line of code

