monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Monotone-devel] Bug? I suspect a filename "?" is not being ignored


From: Welland, Matthew R
Subject: RE: [Monotone-devel] Bug? I suspect a filename "?" is not being ignored by mtn.
Date: Wed, 27 Jun 2007 09:07:34 -0700

You are right, the directory was actually a ^M and I agree that monotone
should not support such directories.

I did not notice the request for the debug file. I recreated the problem
and have inserted the debug file below.

Thanks,

Matt
--
-----Original Message-----
From: address@hidden [mailto:address@hidden On Behalf
Of Zack Weinberg
Sent: Tuesday, June 26, 2007 5:52 PM
To: Welland, Matthew R
Cc: address@hidden
Subject: Re: [Monotone-devel] Bug? I suspect a filename "?" is not being
ignored by mtn.

On 6/26/07, Welland, Matthew R <address@hidden> wrote:
> I am importing some legacy stuff and it has a directory "?" which is
> breaking monotone. Admittedly "?" is a very bad name for a directory
but
> monotone could handle it a little more gracefully.

You are correct that monotone could handle this more gracefully.
However, are you certain that the directory is named "?"? That name
should be unobjectionable.  I suspect what you really have is a
directory whose name is a single control character.   ls will report
such a directory as being named "?" unless you use -b, and thanks to
shell globs, under many conditions you can use "?" as its name.  A
demo:

$ mkdir $(printf '\003')  # the name of this dir is the byte with value
003
$ ls -la
total 0
drwxr-xr-x  3 zack zack   60 2007-06-26 17:43 .
drwxrwxrwt 11 root root 1160 2007-06-26 17:46 ..
drwxr-xr-x  2 zack zack   40 2007-06-26 17:43 ?
$ ls -lab
total 0
drwxr-xr-x  3 zack zack   60 2007-06-26 17:43 .
drwxrwxrwt 11 root root 1160 2007-06-26 17:46 ..
drwxr-xr-x  2 zack zack   40 2007-06-26 17:43 \003
$  touch $(printf '\003/foo')
$ ls -la ?
total 0
drwxr-xr-x 2 zack zack 60 2007-06-26 17:48 .
drwxr-xr-x 3 zack zack 60 2007-06-26 17:43 ..
-rw-r--r-- 1 zack zack  0 2007-06-26 17:48 foo

I regret to say that monotone deliberately does not support such
directories; we will improve the error message if you tell us what
command gave the above error, but we're not going to make it work.

> mtn: wrote debugging log to
> /tmp/mrwellan/rcs2mtn/com.intel.an.central_inputs/_MTN/debug
> mtn: if reporting a bug, please include this file

This file would be helpful.

zw


========debug========
started up on Linux 2.6.5-7.244-bigsmp #1 SMP Mon Dec 12 18:32:25 UTC
2005 i686
command line: 'mtn', 'add', '-R', '.'
set locale:
LC_ALL=LC_CTYPE=en_US.UTF-8;LC_NUMERIC=en_US.UTF-8;LC_TIME=en_US.UTF-8;L
C_COLLATE=C;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_
US.UTF-8;LC_NAME=en_US.UTF-8;LC_ADDRESS=en_US.UTF-8;LC_TELEPHONE=en_US.U
TF-8;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=en_US.UTF-8
initial abs path is: /tmp/mrwellan/blah/foo
ssh_agent: connect: ssh-agent socket not found
initializing from directory /tmp/mrwellan/blah/foo
searching for '_MTN' directory with root '/'
search for '_MTN' ended at '/tmp/mrwellan/blah/foo' with '' removed
working root is '/tmp/mrwellan/blah/foo'
initial relative path is ''
local dump path is _MTN/debug
setting dump path to _MTN/debug
opening rcfile '/eng/eng33/mrwellan/.monotone/monotonerc'
'/eng/eng33/mrwellan/.monotone/monotonerc' is ok
skipping nonexistent rcfile '_MTN/monotonerc'
loading lua hook note_mtn_startup
lua failure: isfunction() in get_fn; stack = nil  
Lua::ok(): failed
executing command 'add'
options path is _MTN/options
branch name is 'yada'
options path is _MTN/options
options path is _MTN/options
writing _MTN/options via temp _MTN/mzsxu08x.tmp
revision path is _MTN/revision
paths.cc:307: invariant 'I(is_valid_internal(data()))' violated
saving current work set: 7 items
finished saving work set
statement cache statistics
prepared 0 statements
Current work set: 7 items
----- begin 'full_version_string' (in virtual void
mtn_sanity::initialize(int, char**, const char*), at mtn-sanity.cc:20)
monotone 0.35 (base revision: f92dd754bf5c1e6eddc9c462b8d68691cfeb7f8b)
Running on          : Linux 2.6.5-7.244-bigsmp #1 SMP Mon Dec 12
18:32:25 UTC 2005 i686
C++ compiler        : GNU C++ version 4.1.1 20070105 (Red Hat 4.1.1-51)
C++ standard library: GNU libstdc++ version 20070105
Boost version       : 1_33_1
Changes since base revision:
format_version "1"

new_manifest [f95da638a0aa17f7c5979d17a059faf6a46e9670]

old_revision [f92dd754bf5c1e6eddc9c462b8d68691cfeb7f8b]

  Generated from data cached in the distribution;
  further changes may have been made.
-----   end 'full_version_string' (in virtual void
mtn_sanity::initialize(int, char**, const char*), at mtn-sanity.cc:20)
----- begin 'system_flavour' (in virtual void sanity::initialize(int,
char**, const char*), at sanity.cc:57)
Linux 2.6.5-7.244-bigsmp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686
-----   end 'system_flavour' (in virtual void sanity::initialize(int,
char**, const char*), at sanity.cc:57)
----- begin 'cmdline_string' (in virtual void sanity::initialize(int,
char**, const char*), at sanity.cc:71)
'mtn', 'add', '-R', '.'
-----   end 'cmdline_string' (in virtual void sanity::initialize(int,
char**, const char*), at sanity.cc:71)
----- begin 'string(lc_all)' (in virtual void sanity::initialize(int,
char**, const char*), at sanity.cc:76)
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=en_US.UTF-8;LC_TIME=en_US.UTF-8;LC_COLLA
TE=C;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-
8;LC_NAME=en_US.UTF-8;LC_ADDRESS=en_US.UTF-8;LC_TELEPHONE=en_US.UTF-8;LC
_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=en_US.UTF-8
-----   end 'string(lc_all)' (in virtual void sanity::initialize(int,
char**, const char*), at sanity.cc:76)
----- begin 'new_roster' (in void workspace::perform_additions(const
path_set&, bool, bool), at work.cc:1282)
Root node: 2147483648
   at 0x84f34f8, uses: 2

Node 2147483648
address: 0x84f34f8 (uses: 2)
self: 2147483648
parent: 0
name: 
attrs:
type: dir
children: 0
-----   end 'new_roster' (in void workspace::perform_additions(const
path_set&, bool, bool), at work.cc:1282)
----- begin 'path' (in file_path::file_path(file_path::source_type,
const std::string&), at paths.cc:293)

-----   end 'path' (in file_path::file_path(file_path::source_type,
const std::string&), at paths.cc:293)
----- begin 'data' (in file_path::file_path(file_path::source_type,
const std::string&), at paths.cc:306)

-----   end 'data' (in file_path::file_path(file_path::source_type,
const std::string&), at paths.cc:306)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]