* A few stgit bugfixes
@ 2006-05-24 6:05 Karl Hasselström
2006-05-24 6:06 ` [PATCH 1/3] Fix infinite recursion on absolute paths Karl Hasselström
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Karl Hasselström @ 2006-05-24 6:05 UTC (permalink / raw)
To: Catalin Marinas; +Cc: git
Fixes for a few bugs recently introduced in stgit by yours truly.
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] Fix infinite recursion on absolute paths
2006-05-24 6:05 A few stgit bugfixes Karl Hasselström
@ 2006-05-24 6:06 ` Karl Hasselström
2006-05-24 6:06 ` [PATCH 2/3] Fix indexing error during "diff -r/" Karl Hasselström
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Karl Hasselström @ 2006-05-24 6:06 UTC (permalink / raw)
To: Catalin Marinas; +Cc: git
Calling create_dirs with an absolute path caused infinite recursion,
since os.path.dirname('/') == '/'. Fix this by exiting early if the
given path already is a directory.
---
stgit/utils.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/stgit/utils.py b/stgit/utils.py
index 68b8f58..ed6e43c 100644
--- a/stgit/utils.py
+++ b/stgit/utils.py
@@ -130,7 +130,7 @@ def remove_file_and_dirs(basedir, file):
def create_dirs(directory):
"""Create the given directory, if the path doesn't already exist."""
- if directory:
+ if directory and not os.path.isdir(directory):
create_dirs(os.path.dirname(directory))
try:
os.mkdir(directory)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] Fix indexing error during "diff -r/"
2006-05-24 6:05 A few stgit bugfixes Karl Hasselström
2006-05-24 6:06 ` [PATCH 1/3] Fix infinite recursion on absolute paths Karl Hasselström
@ 2006-05-24 6:06 ` Karl Hasselström
2006-05-24 6:07 ` [PATCH 3/3] Explicitly specify utf-8 coding in file Karl Hasselström
2006-05-24 21:10 ` A few stgit bugfixes Catalin Marinas
3 siblings, 0 replies; 5+ messages in thread
From: Karl Hasselström @ 2006-05-24 6:06 UTC (permalink / raw)
To: Catalin Marinas; +Cc: git
The string indexing when decoding the -r argument for diff made an
implicit assumption that the revision string was at least two
characters long, which broke on the simple invocation "diff -r/".
---
stgit/commands/diff.py | 8 ++++----
stgit/utils.py | 6 ++++++
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/stgit/commands/diff.py b/stgit/commands/diff.py
index d765784..caa3c5b 100644
--- a/stgit/commands/diff.py
+++ b/stgit/commands/diff.py
@@ -56,11 +56,11 @@ def func(parser, options, args):
rev_list_len = len(rev_list)
if rev_list_len == 1:
rev = rev_list[0]
- if rev[-1] == '/':
+ if rev.endswith('/'):
# the whole patch
- rev = rev[:-1]
- if rev[-1] == '/':
- rev = rev[:-1]
+ rev = strip_suffix('/', rev)
+ if rev.endswith('/'):
+ rev = strip_suffix('/', rev)
rev1 = rev + '//bottom'
rev2 = rev + '//top'
else:
diff --git a/stgit/utils.py b/stgit/utils.py
index ed6e43c..67431ec 100644
--- a/stgit/utils.py
+++ b/stgit/utils.py
@@ -109,6 +109,12 @@ def strip_prefix(prefix, string):
assert string.startswith(prefix)
return string[len(prefix):]
+def strip_suffix(suffix, string):
+ """Return string, without the suffix. Blow up if string doesn't
+ end with suffix."""
+ assert string.endswith(suffix)
+ return string[:-len(suffix)]
+
def remove_dirs(basedir, dirs):
"""Starting at join(basedir, dirs), remove the directory if empty,
and try the same with its parent, until we find a nonempty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] Explicitly specify utf-8 coding in file
2006-05-24 6:05 A few stgit bugfixes Karl Hasselström
2006-05-24 6:06 ` [PATCH 1/3] Fix infinite recursion on absolute paths Karl Hasselström
2006-05-24 6:06 ` [PATCH 2/3] Fix indexing error during "diff -r/" Karl Hasselström
@ 2006-05-24 6:07 ` Karl Hasselström
2006-05-24 21:10 ` A few stgit bugfixes Catalin Marinas
3 siblings, 0 replies; 5+ messages in thread
From: Karl Hasselström @ 2006-05-24 6:07 UTC (permalink / raw)
To: Catalin Marinas; +Cc: git
uncommit.py has a non-ascii character in it (in my name in the
copyright line). Without this coding: comment, I get an error like the
following when I run stgit:
/home/kha/git/stgit/stgit/main.py:61: DeprecationWarning: Non-ASCII
character '\xc3' in file
/home/kha/git/stgit/stgit/commands/uncommit.py on line 3, but no
encoding declared; see http://www.python.org/peps/pep-0263.html for
details
---
stgit/commands/uncommit.py | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/stgit/commands/uncommit.py b/stgit/commands/uncommit.py
index e03d207..52ce5a8 100644
--- a/stgit/commands/uncommit.py
+++ b/stgit/commands/uncommit.py
@@ -1,3 +1,5 @@
+# -*- coding: utf-8 -*-
+
__copyright__ = """
Copyright (C) 2006, Karl Hasselström <kha@treskal.com>
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: A few stgit bugfixes
2006-05-24 6:05 A few stgit bugfixes Karl Hasselström
` (2 preceding siblings ...)
2006-05-24 6:07 ` [PATCH 3/3] Explicitly specify utf-8 coding in file Karl Hasselström
@ 2006-05-24 21:10 ` Catalin Marinas
3 siblings, 0 replies; 5+ messages in thread
From: Catalin Marinas @ 2006-05-24 21:10 UTC (permalink / raw)
To: Karl Hasselström; +Cc: git
Karl Hasselström wrote:
> Fixes for a few bugs recently introduced in stgit by yours truly.
Applied. Thanks,
Catalin
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-05-24 21:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-24 6:05 A few stgit bugfixes Karl Hasselström
2006-05-24 6:06 ` [PATCH 1/3] Fix infinite recursion on absolute paths Karl Hasselström
2006-05-24 6:06 ` [PATCH 2/3] Fix indexing error during "diff -r/" Karl Hasselström
2006-05-24 6:07 ` [PATCH 3/3] Explicitly specify utf-8 coding in file Karl Hasselström
2006-05-24 21:10 ` A few stgit bugfixes Catalin Marinas
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.