Thu May 25 11:30:36 PDT 2006 Brendan Cully <[EMAIL PROTECTED]>
* git source: remove old name of renamed files when applying a changeset
Otherwise CVS complains when it attempts to execute cvs remove. I should
investigate using git-pull instead of git-checkout, but this is the minimal
fix.
Thu May 25 12:05:35 PDT 2006 Brendan Cully <[EMAIL PROTECTED]>
* git source: use git merge for applyChangeset
This is a higher-level way to fast-forward across changesets. It should be
more
resilient to git changes (it would not have suffered from the last two bugs I
found in this routine).
Thu May 25 12:24:59 PDT 2006 Brendan Cully <[EMAIL PROTECTED]>
* git source: add -r to git diff-tree, to detect renames across directories
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
New patches:
[git source: remove old name of renamed files when applying a changeset
Brendan Cully <[EMAIL PROTECTED]>**20060525183036
Otherwise CVS complains when it attempts to execute cvs remove. I should
investigate using git-pull instead of git-checkout, but this is the minimal fix.
] {
hunk ./vcpx/git.py 68
- - for entry in [entry for entry in changeset.entries
- - if entry.action_kind == ChangesetEntry.DELETED]:
- - remove(join(self.basedir, entry.name))
+ for entry in changeset.entries:
+ if entry.action_kind == ChangesetEntry.DELETED:
+ remove(join(self.basedir, entry.name))
+ elif entry.action_kind == ChangesetEntry.RENAMED:
+ remove(join(self.basedir, entry.old_name))
}
[git source: use git merge for applyChangeset
Brendan Cully <[EMAIL PROTECTED]>**20060525190535
This is a higher-level way to fast-forward across changesets. It should be more
resilient to git changes (it would not have suffered from the last two bugs I
found in this routine).
] {
hunk ./vcpx/git.py 61
- - from changes import ChangesetEntry
- - from os import remove
- - from os.path import join
- -
- - self._tryCommand(['read-tree', '-m', changeset.revision],
- - ChangesetApplicationFailure, False)
- - # Delete removed files by hand
- - for entry in changeset.entries:
- - if entry.action_kind == ChangesetEntry.DELETED:
- - remove(join(self.basedir, entry.name))
- - elif entry.action_kind == ChangesetEntry.RENAMED:
- - remove(join(self.basedir, entry.old_name))
- -
- - self._tryCommand(['checkout-index', '-f', '-u', '-a'],
+ self._tryCommand(['merge', '-n', '--no-commit', 'fastforward', 'HEAD', changeset.revision],
hunk ./vcpx/git.py 63
- - # Somewhat cosmetic: point master to current revision. Nothing should
- - # really rely on this, but if something goes wrong this will give
- - # an indication of how far along tailor got...
- - head = file(join(self.basedir, '.git', 'refs', 'heads', 'master'), 'w')
- - head.write(changeset.revision + '\n')
- - head.close()
}
[git source: add -r to git diff-tree, to detect renames across directories
Brendan Cully <[EMAIL PROTECTED]>**20060525192459] {
hunk ./vcpx/git.py 99
- - cmd = ['diff-tree', '--root', '-M', '--name-status']
+ cmd = ['diff-tree', '--root', '-r', '-M', '--name-status']
}
Context:
[update git refs/heads/master, not HEAD, when applying a changeset
Brendan Cully <[EMAIL PROTECTED]>**20060523172632
In recent versions of git the format of the HEAD file changed from a direct
pointer to a commit to an indirection through the 'master' branch. This
keeps tailor up-to-date.
]
[Test against buggy darcs patch that adds and removes the same file
[EMAIL PROTECTED]
[Recognize patch hash as darcs start-revision
[EMAIL PROTECTED]
Now it's possible to specify a specific patch hash instead of only a tag
name: tailor will use `darcs get --to-match` to fetch the first version
at bootstrap time.
]
[Don't necessarily remove an empty directory
[EMAIL PROTECTED]
Fix `CvspsWorkingDir.__maybeDeleteDirectory()` so that it does
not remove the directory when the same changeset adds other entries
to it. This fixes #49.
]
[Fix the glitch reported by #50: global name 'err' is not defined
[EMAIL PROTECTED]
[Forgot to change one variable
[EMAIL PROTECTED]
[Remove whitespace from email address in bzr revision ids (closes #48).
[EMAIL PROTECTED]
[speling fix
Brendan Cully <[EMAIL PROTECTED]>**20060511231132]
[git source: handle copy from one source to many targets
Brendan Cully <[EMAIL PROTECTED]>**20060511230816
A file can be copied to several targets in one commit. tailor
doesn't know about copies, so we file them as multiple renames for
now. This may confuse targets that very reasonably only accept a
single rename, but the alternative throws away file history.
]
[git source: allow updates across branches
Brendan Cully <[EMAIL PROTECTED]>**20060511230518
Updating from revision x to revision x+1 can cross branches that
won't be merged until later. repo.update won't allow this without
the force option. We don't always set force, in case the user has
(mistakenly) edited the working directory directly. Instead,
if plain update fails we check for dirstate modifications and
update with force if there are none.
]
[git target: don't choke on empty commit messages
Brendan Cully <[EMAIL PROTECTED]>**20060511230227]
[Skip pointless checkout after clone in hg source
Brendan Cully <[EMAIL PROTECTED]>**20060511215757]
[Emit a warning message whenever the SVN backend skips a file out of scope
[EMAIL PROTECTED]
[Simple tests for basic CVS revision numbers handling
[EMAIL PROTECTED]
[Adjust the source repository of one test
[EMAIL PROTECTED]
[Test for CVS tag-entries configuration
[EMAIL PROTECTED]
[Emit some noise when forcing CVS sticky tag
[EMAIL PROTECTED]
[Use a different extension for the old version of CVS/Entries
[EMAIL PROTECTED]
When forcing a sticky tag on each CVS entry, use '.tailor-old' instead
of simply '.old' to avoid name clashes, as CVS sometime leaves that
itself. Also, remove the old copy when done.
]
[Rename entries to names in bzr backend
[EMAIL PROTECTED]
Entries refer to ChangesetEntry, but here it's just an array of filenames.
]
[Spell fix: it's synchronize, not syncronize
[EMAIL PROTECTED]
[Better docstrings in bzr.py
[EMAIL PROTECTED]
[Fixes for bzr 0.8 release
[EMAIL PROTECTED]
Use create_branch_convenience from bzrlib to create a branch. Allow for the
root-directory to be part of a shared repository, so it can share history with
other branches.
No need to store the bzrlib objects bzrdir and branch inside BzrWorkingDir.
All operations should happen through the workingtree object.
Renamed some variables to make their intent more clear.
]
[Remove final slash from svn repository
[EMAIL PROTECTED]
[Query hg for default options
Brendan Cully <[EMAIL PROTECTED]>**20060503210511
hg looks up command options from the argument without trapping
KeyError. So whenever an option is added to an hg command, tailor
backtraces until it's been taught to pass in the new option. This
patch queries hg for the set of options for all commands, which
should provide some protection against this particular problem.
]
[hglib.py -> hg.py implies HglibWorkingDir -> HgWorkingDir
Brendan Cully <[EMAIL PROTECTED]>**20060503210444]
[TAG Version 0.9.22
[EMAIL PROTECTED]
Patch bundle hash:
a371c2aec9c0d6241676d6893a04f0a44dc1cc7b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
iD8DBQFEdgxOIigsijWFMDIRApCwAJ9k5CkA9S5wLf3cUHcAydIEmeLe2wCfYNVA
TiAgXX6QZoKFYMVHgbnARgM=
=7x3C
-----END PGP SIGNATURE-----
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor