Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-globalopts.out @ 5192:33015dac5df5
convert: fix mercurial_sink.putcommit
Changeset 4ebc8693ce72 added some code to putcommit to avoid creating a
revision that touches no files, but this can break regular conversions
from some repositories:
- conceptually, since we're converting a repo, we should try to make
the new hg repo as similar as possible to the original repo - we
should create a new changeset, even if the original revision didn't
touch any files (maybe the commit message had some important bit);
- even if a "regular" revision that doesn't touch any file may seem
weird (and maybe even broken), it's completely legitimate for a merge
revision to not touch any file, and, if we just skip it, the
converted repo will end up with wrong history and possibly an extra
head.
As an example, say the crew and main hg repos are sync'ed. Somebody
sends an important patch to the mailing list. Matt quickly applies
and pushes it. But at the same time somebody also applies it to crew
and pushes it. Suppose the commit message ended up being a bit
different (say, there was a typo and somebody didn't fix it) or that
the date ended up being different (because of different patch-applying
scripts): the changeset hashes will be different, but the manifests
will be the same.
Since both changesets were pushed to public repos, it's hard to recall
them. If both are merged, the manifest from the resulting merge
revision will have the exact same contents as its parents - i.e. the
merge revision really doesn't touch any file at all.
To keep the file filtering stuff "working", the generic code was changed
to skip empty revisions if we're filtering the repo, fixing a bug in the
process (we want parents[0] instead of tip).
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 17 Aug 2007 20:18:05 -0300 |
parents | 9ac493f12901 |
children |
line wrap: on
line source
adding a adding b 1 files updated, 0 files merged, 0 files removed, 0 files unresolved pulling from ../b searching for changes warning: repository is unrelated adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) (run 'hg heads' to see heads, 'hg merge' to merge) 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) %% -R/--repository changeset: 0:8580ff50825a tag: tip user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: a changeset: 0:b6c483daf290 tag: tip user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: b %% abbrev of long option changeset: 1:b6c483daf290 tag: tip parent: -1:000000000000 user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: b %% earlygetopt with duplicate options (36d23de02da1) changeset: 1:b6c483daf290 tag: tip parent: -1:000000000000 user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: b changeset: 0:8580ff50825a tag: tip user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: a %% earlygetopt short option without following space 0:b6c483daf290 %% earlygetopt with illegal abbreviations abort: Option --config may not be abbreviated! abort: Option --cwd may not be abbreviated! abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo! abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo! abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo! abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo! %% --cwd changeset: 0:8580ff50825a tag: tip user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: a %% -y/--noninteractive - just be sure it is parsed 0:8580ff50825a 0:8580ff50825a %% -q/--quiet 0:8580ff50825a 0:b6c483daf290 0:8580ff50825a 1:b6c483daf290 %% -v/--verbose changeset: 1:b6c483daf290 tag: tip parent: -1:000000000000 user: test date: Thu Jan 01 00:00:01 1970 +0000 files: b description: b changeset: 0:8580ff50825a user: test date: Thu Jan 01 00:00:01 1970 +0000 files: a description: a changeset: 0:b6c483daf290 tag: tip user: test date: Thu Jan 01 00:00:01 1970 +0000 files: b description: b %% --config quuxfoo abort: malformed --config option: abort: malformed --config option: a.b abort: malformed --config option: a abort: malformed --config option: a.= abort: malformed --config option: .b= %% --debug changeset: 1:b6c483daf2907ce5825c0bb50f5716226281cc1a tag: tip parent: -1:0000000000000000000000000000000000000000 parent: -1:0000000000000000000000000000000000000000 manifest: 1:23226e7a252cacdc2d99e4fbdc3653441056de49 user: test date: Thu Jan 01 00:00:01 1970 +0000 files+: b extra: branch=default description: b changeset: 0:8580ff50825a50c8f716709acdf8de0deddcd6ab parent: -1:0000000000000000000000000000000000000000 parent: -1:0000000000000000000000000000000000000000 manifest: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0 user: test date: Thu Jan 01 00:00:01 1970 +0000 files+: a extra: branch=default description: a %% --traceback Traceback (most recent call last): %% --time Time: real x.x secs (user x.x+x.x sys x.x+x.x) %% --version Mercurial Distributed SCM (version xxx) %% -h/--help Mercurial Distributed SCM list of commands: add add the specified files on the next commit addremove add all new files, delete all missing files annotate show changeset information per file line archive create unversioned archive of a repository revision backout reverse effect of earlier changeset branch set or show the current branch name branches list repository named branches bundle create a changegroup file cat output the current or given revision of files clone make a copy of an existing repository commit commit the specified files or all outstanding changes copy mark files as copied for the next commit diff diff repository (or selected files) export dump the header and diffs for one or more changesets grep search for a pattern in specified files and revisions heads show current repository heads or show branch heads help show help for a command, extension, or list of commands identify identify the working copy or specified revision import import an ordered set of patches incoming show new changesets found in source init create a new repository in the given directory locate locate files matching specific patterns log show revision history of entire repository or files manifest output the current or given revision of the project manifest merge merge working directory with another revision outgoing show changesets not found in destination parents show the parents of the working dir or revision paths show definition of symbolic path names pull pull changes from the specified source push push changes to the specified destination recover roll back an interrupted transaction remove remove the specified files on the next commit rename rename files; equivalent of copy + remove revert revert files or dirs to their states as of some revision rollback roll back the last transaction in this repository root print the root (top) of the current working dir serve export the repository via HTTP showconfig show combined config settings from all hgrc files status show changed files in the working directory tag add a tag for the current or given revision tags list repository tags tip show the tip revision unbundle apply one or more changegroup files update update working directory verify verify the integrity of the repository version output version and copyright information use "hg -v help" to show aliases and global options Mercurial Distributed SCM list of commands: add add the specified files on the next commit addremove add all new files, delete all missing files annotate show changeset information per file line archive create unversioned archive of a repository revision backout reverse effect of earlier changeset branch set or show the current branch name branches list repository named branches bundle create a changegroup file cat output the current or given revision of files clone make a copy of an existing repository commit commit the specified files or all outstanding changes copy mark files as copied for the next commit diff diff repository (or selected files) export dump the header and diffs for one or more changesets grep search for a pattern in specified files and revisions heads show current repository heads or show branch heads help show help for a command, extension, or list of commands identify identify the working copy or specified revision import import an ordered set of patches incoming show new changesets found in source init create a new repository in the given directory locate locate files matching specific patterns log show revision history of entire repository or files manifest output the current or given revision of the project manifest merge merge working directory with another revision outgoing show changesets not found in destination parents show the parents of the working dir or revision paths show definition of symbolic path names pull pull changes from the specified source push push changes to the specified destination recover roll back an interrupted transaction remove remove the specified files on the next commit rename rename files; equivalent of copy + remove revert revert files or dirs to their states as of some revision rollback roll back the last transaction in this repository root print the root (top) of the current working dir serve export the repository via HTTP showconfig show combined config settings from all hgrc files status show changed files in the working directory tag add a tag for the current or given revision tags list repository tags tip show the tip revision unbundle apply one or more changegroup files update update working directory verify verify the integrity of the repository version output version and copyright information use "hg -v help" to show aliases and global options %% not tested: --debugger