Hi.
Seems like this went unnoticed. A user came by IRC today suffering this
problem.
Cheers,
--
Adeodato Simó dato at net.com.org.es
Debian Developer adeodato at debian.org
Create a system that is usable even by idiots, and only idiots will use it.
New patches:
[Handle non-existing self.__date in Changeset._get_date.
Adeodato Simo <[EMAIL PROTECTED]>**20060802200038
This can happen with Changesets unpickled from previous versions of
tailor. Fix: give value to self.__date from __dict__['date'].
] {
hunk ./vcpx/changes.py 104
- return self.__date
+ try:
+ return self.__date
+ except AttributeError, e:
+ # handle state-file Changesets created with previous versions of
tailor
+ from vcpx.tzinfo import UTC
+ self.__date = self.__dict__['date'].replace(tzinfo=UTC)
+ return self.__date
}
Context:
[Test that shows how darcs backend should degrade add+rename
[EMAIL PROTECTED]
[Fix the reordering of bad ordered darcs hunks
[EMAIL PROTECTED]
[Split darcs backend into source and target submodules
[EMAIL PROTECTED]
[Support both commands.find() and commands.findcmd() as the former was recently
renamed
[EMAIL PROTECTED]
[Rename git's _tryCommand() to runCommand()
[EMAIL PROTECTED]
[Resolve conflict with Adeodato's patch on timezone stuff
[EMAIL PROTECTED]
[Remove useless imports
[EMAIL PROTECTED]
[[general] Ensure Changeset.date always has timezone information
Adeodato Simo <[EMAIL PROTECTED]>**20060706152920
This patch modifies all source backends to always set the tzinfo member of
every Changeset.date they create, and all target backends to make proper use
of it at commit time. This should solve all offset errors in dates for
commits, and making tailor robust with respect implementing a "timezone"
option for a project.
Summary of the needed changes:
+ vcpx:
- tzinfo.py: new file, taken from pytz sources. Provides definitions for
two basic tzinfo classes: UTC, and FixedOffset.
- changes.py: make "date" member a property, with a setter function that
raises an exception if the provided date does not have a not-None tzinfo
member. Prefer this to silently setting it to UTC, which may be a wrong
assumption.
+ vcpx/repository:
- [source] cvs.py, cvsps.py darcs.py, monotone.py, svn.py: Changeset.date
was always created in UTC; explicitly set date.tzinfo to UTC from
tzinfo.py.
- [source] bzr.py, git.py, hg.py: an UTC date was created from timestamp
and offset; instead, create a date in the proper FixedOffset timezone.
- [source] tla.py: an UTC date was created from the Standard-date header;
however, a Date header with the local date is also provided: add new
function __parse_date() that can calculate the timezone from these two
headers, and use it.
- [target] cvs.py, cvsps.py: str(date) was assumed not to contain timezone
information; make date a tzinfo-less datetime prior to str()'ing it.
- [target] cdv.py, darcs.py, monotone.py, svn.py: Changeset.date was
assumed to be UTC; make the appropriate conversion prior to using it.
- [target] cg.py, git.py: include "%z" in the strftime format specifier
for GIT_AUTHOR_DATE.
- [target] bzr.py, hg.py: do not use time.mktime() to calculate the
timestamp, since it takes into account local timezone; use
calendar.timegm() instead, which gives an UTC timestamp. And provide an
appropriate timezone to the underlying commit() function.
+ vcpx/tests:
- cvs.py, cvsps.py, darcs.py, svn.py: set tzinfo=UTC in datetimes that get
created to be compared to cset.date.
]
[New Repository.create() method, to initialize a new repository
[EMAIL PROTECTED]
[The basedir was moved to the Repository
[EMAIL PROTECTED]
[Remove the directory once the test is done (commented out by error)
[EMAIL PROTECTED]
[Resolve conflicts with Yann's patch
[EMAIL PROTECTED]
[[git] split git.py into source+target modules
[EMAIL PROTECTED]
This allows to get more accurate coverage stats. Eg. my test tree now
exercises the git backend like:
Name Stmts Exec Cover
---------------------------------------------------------
vcpx/repository/git/__init__ 44 37 84%
vcpx/repository/git/source 95 0 0%
vcpx/repository/git/target 154 115 74%
vcpx/target 249 173 69%
]
[[git] move _tryCommand from GitWorkingDir to GitRepository
[EMAIL PROTECTED]
[Move basedir attribute from WorkingDir to Repository
[EMAIL PROTECTED]
[[tests/darcs] update after the "don't repeat patch name in changelog" fix
Adeodato Simo <[EMAIL PROTECTED]>**20060705170541]
[Add support for source/target-split repository backends
[EMAIL PROTECTED]
This patch still looks for the <Kind>Repository class in the
vcpx.repository.<kind>
module, so it should be moved into repository/<kind>/__init__.py, and looks
for the
source and target classes into repository/<kind>/{source,target}.py.
]
[[git] environment handling improvments
Adeodato Simo <[EMAIL PROTECTED]>**20060702180913
+ make GitExternalCommand.execute() populate its kwargs['env'] with
os.environ, since ExternalCommand does not do it if it gets an
environment passed
+ remove env.update(os.environ) call from _commit(), not necessary
after the above change.
]
[[tests] Do not enter infinite loop if Tailor darcs repository can't be found
Adeodato Simo <[EMAIL PROTECTED]>**20060701234548]
[[bzr] ignore state and log files without using .bzrignore
Adeodato Simo <[EMAIL PROTECTED]>**20060701121823
This patch makes BzrWorkingDir not use .bzrignore to ignore the state
and log files when necessary, and add them to bzrlib's DEFAULT_IGNORE
list.
The rationale for this is that the conversion is cleaner this way, since
otherwise the resulting bzr repository will always need an extra commit
to revert .bzrignore to match the original repository.
]
[[bzr] _addSubtree(): do not add files in IGNORED_METADIRS and .bzrignore
Adeodato Simo <[EMAIL PROTECTED]>**20060701120023
The implementation of _addSubtree() recently introduced forces the
addition of files ignored by bzr, because the source repository could
contain files that matched bzr's idea of ignorable files.
However, dirs in IGNORED_METADIRS and things like the status and log
files (which _prepareTargetRepository adds to .bzrignore) should always
be ignored. This patch addresses that.
]
[[git source] calculate tzsecs from abs(tz), as originally intended
Adeodato Simo <[EMAIL PROTECTED]>**20060630204427]
[[bzr] rewrite _addPathnames and _addSubtree using smart_add_tree
Adeodato Simo <[EMAIL PROTECTED]>**20060630044229
BzrWorkingDir._addPathnames: make 25 lines shorter by making use of
smart_add_tree, which can deal with already added or renamed files.
This fixes ticket #64, since this function also takes care of adding
missing parent directories.
BzrWorkingDir._addSubtree: reintroduce, but this time paying attention
to the return value, since it includes a list of ignored files: if any,
call self._addPathnames() on them.
]
[[git] Preserve initial commit msg on branch in repository mode as well
[EMAIL PROTECTED]
The criteria to detect if we are dealing with a branch is the existence
of the "branchpoint" parameter, regardless of the way we import branches
(multi-repo or single-repo).
]
[[git] Improve error cases when importing branches
[EMAIL PROTECTED]
This patch creates a new exception to identify the case where the user made an
error
when specifying a "branchpoint" parameter, and does an explicit check to abort
when
attempting to initialize an already-intialized git target repo (most notably
hit in
]
[Fixed typo in a comment
[EMAIL PROTECTED]
[[darcs source] don't repeat patch name in changelog
Adeodato Simo <[EMAIL PROTECTED]>**20060627173907
Make endElement's behavior consistent with that of _getUpstreamChangesets,
and don't include the patch name in the changelog, even if this one is
empty.
]
[[bzr] when removing files, get files removed before the directory they're in
Adeodato Simo <[EMAIL PROTECTED]>**20060627124651]
[[git] add support for "repository" parameter
[EMAIL PROTECTED]
[[git] make it more obvious what the parts common to source and target are
[EMAIL PROTECTED]
[Replace dashes with underscores in the hg command names
Andrea Arcangeli <[EMAIL PROTECTED]>**20060629085140]
[Added the vcpx.repository subpackage
Andrea Arcangeli <[EMAIL PROTECTED]>**20060629085111]
[Use "_editXXX" instead of "_recordUpdatedXXX" for consistency
[EMAIL PROTECTED]
[Initialize logger in repository before loading the project
[EMAIL PROTECTED]
This makes the loader available to backend-specific _load() methods.
]
[Misc parent-repo fixes and cleanups
[EMAIL PROTECTED]
Do not use a default value of '' for parent-repo. Also fix a bug introduced
while moving parent-repo support out of tailor.py.
]
[Revert change to Tailorizer.bootstrap()
[EMAIL PROTECTED]
Only git knows about PARENT_REPO at this point, so the test must
performed by the specific workingdir.
]
[Fix repository instantiation
[EMAIL PROTECTED]
Don't use the logger, since we don't have one yet. The caller
will log something for us. Moved (and tested) the bzr specific
code into the pertaining unit.
]
[Revert last change on cvs logger name
[EMAIL PROTECTED]
The name of the logger is still "tailor.vcpx.REP-KIND.xxx"
]
[Add missing InvocationError import
[EMAIL PROTECTED]
[Initial support for branches in git target
[EMAIL PROTECTED]
[Fix remaining references to path predating the repository.py split
[EMAIL PROTECTED]
[Untabified
[EMAIL PROTECTED]
[[git] commit at plumbing level
[EMAIL PROTECTED]
This avoids to call the git-commit shell script, and uses low-level git tools
to do the same job.
]
[Whitespace, two blank lines to separate classes
[EMAIL PROTECTED]
[Split the monolithic repository.py into smaller units
[EMAIL PROTECTED]
The repository subclass of each backend is now in the same unit that
implements its working dir, under the vcpx.repository subpackage.
This has several advantages: the obvious of keeping related code closer
and the ability of lazy load only the needed unit, as it was already done
for the working dir subclasses.
]
[Use a common ancestor to recognize tailor exceptions
[EMAIL PROTECTED]
[Fix comment
[EMAIL PROTECTED]
[[git] do not rely on "git-commit -a", use git-update-index
[EMAIL PROTECTED]
This is the first part of getting rid of git-commit. We explicitely
update the index for each type of file modification.
]
[Fix _tryCommand call in _getRev
[EMAIL PROTECTED]
I have not experienced the problem, but it seems clear _tryCommand is not
correctly called here.
]
[Add a hook to record updated entries in target repo
[EMAIL PROTECTED]
[Correctly display "default encoding" warning
[EMAIL PROTECTED]
[[hg] call add with no arguments on init
Brendan Cully <[EMAIL PROTECTED]>**20060621204559]
[[hg] canonify repository root directory
Brendan Cully <[EMAIL PROTECTED]>**20060621191453
The dirstate walker uses simple string comparison between repo.root
and os.getcwd(), which may fail unexpectedly if repo.root is not
the same as realpath(repo.root)
]
[[hg] chdir to self.basedir before executing commands
Brendan Cully <[EMAIL PROTECTED]>**20060621184724
Some hg tree walk operations expect to be started from the repository
root (the command-line tool always does this). Without this patch
the dirstate walk may occasionally inappropriately mangle paths,
depending on where tailor is run from.
]
[[hg] Remove files under subdirectories
Brendan Cully <[EMAIL PROTECTED]>**20060620210828
removePathnames was just ignoring directories instead of
removing the files under them. Tailor should walk mercurial's
dirstate and remove all files under a removed directory.
]
[[hg] Use high level commit command
Brendan Cully <[EMAIL PROTECTED]>**20060620203136
commands.commit takes care of expanding directories to their component
files so we don't have to (we weren't doing it correctly either). If
mercurial ever decides to track directories, this will already be
correct.
]
[[hg] wrapper for commands.*
Brendan Cully <[EMAIL PROTECTED]>**20060620190739
_hgCommand makes it easier to call commands.* functions, and
ensures they will always have their options dictionary set
correctly.
]
[[hg] always use repository-specific UI when repository is available
Brendan Cully <[EMAIL PROTECTED]>**20060620190521]
[Possible fix for #56: detect branch name at bootstrap
[EMAIL PROTECTED]
[Use normalized path for comparing with paths from bzrlib
[EMAIL PROTECTED]
This is the patch attached to ticket #59, thank you luks.
]
[M-x whitespace-cleanup
[EMAIL PROTECTED]
[Remove useless imports noticed by pyflakes
[EMAIL PROTECTED]
[Catch ConfigParser exceptions
[EMAIL PROTECTED]
[Use the new SF.NET nomenclature to reach the CVS repositories
[EMAIL PROTECTED]
[Make changeset-threshold a cvs parameter
Yann Dirson <[EMAIL PROTECTED]>**20060606072820]
[Compare the revision with branch only when following a branch
[EMAIL PROTECTED]
[Revisited generation of commit entries
[EMAIL PROTECTED]
Consider added names first, and add the old name in the abstract method.
This should fix #39 where parent dirs are committed after child, either
in very large svn commit or coming from CVS.
]
[Add fake events at the end of the loop
[EMAIL PROTECTED]
[TAG Version 0.9.23
[EMAIL PROTECTED]
Patch bundle hash:
272422a89d2a1d6256f0ce6644b9cfcc0b7e7dbd
_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor