Rev 3032: Mark .bzr directories as "hidden" on Windows (#71147) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Nov 27 01:04:20 GMT 2007
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3032
revision-id:pqm at pqm.ubuntu.com-20071127010418-gbuxg943nyu8vefz
parent: pqm at pqm.ubuntu.com-20071126224137-gnhd7r5hx7f0064k
parent: bialix at ukr.net-20071127000416-4ruwdemf42kqbzm4
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-11-27 01:04:18 +0000
message:
Mark .bzr directories as "hidden" on Windows (#71147)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/win32utils.py win32console.py-20051021033308-123c6c929d04973d
------------------------------------------------------------
revno: 3023.1.4
revision-id:bialix at ukr.net-20071127000416-4ruwdemf42kqbzm4
parent: bialix at ukr.net-20071126234215-dwyxq2ww5sg3xzua
parent: pqm at pqm.ubuntu.com-20071126224137-gnhd7r5hx7f0064k
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: hidden.dot.bzr
timestamp: Tue 2007-11-27 02:04:16 +0200
message:
merge bzr.dev
renamed:
doc/developers/knitpack.txt => doc/developers/packrepo.txt knitpack.txt-20071023074744-q0g5u8me8gk5zbtb-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/lru_cache.py lru_cache.py-20070119165515-tlw203kuwh0id5gv-1
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/repofmt/pack_repo.py pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/smart/branch.py branch.py-20061124031907-mzh3pla28r83r97f-1
bzrlib/smart/repository.py repository.py-20061128022038-vr5wy5bubyb8xttk-1
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/branch_implementations/test_branch.py testbranch.py-20050711070244-121d632bc37d7253
bzrlib/tests/branch_implementations/test_break_lock.py test_break_lock.py-20060504111902-9aae411dbe9aadd2
bzrlib/tests/branch_implementations/test_locking.py test_locking.py-20060707151933-tav3o2hpibwi53u4-4
bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
bzrlib/tests/ftp_server.py ftpserver.py-20071019102346-61jbvdkrr70igauv-1
bzrlib/tests/interrepository_implementations/__init__.py __init__.py-20060220054744-baf49a1f88f17b1a
bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
bzrlib/tests/test_info.py test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
bzrlib/tests/test_lru_cache.py test_lru_cache.py-20070119165535-hph6rk4h9rzy4180-1
bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
bzrlib/tests/test_revert.py test_revert.py-20060828180832-fqb1v6ecpyvnlitj-1
bzrlib/tests/test_smart.py test_smart.py-20061122024551-ol0l0o0oofsu9b3t-2
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/tests/workingtree_implementations/test_break_lock.py test_break_lock.py-20060504115740-233e245df546fd42
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
doc/en/user-reference/hooks.txt hooks.txt-20070830033044-xxu2rced13f72dka-1
doc/developers/packrepo.txt knitpack.txt-20071023074744-q0g5u8me8gk5zbtb-1
------------------------------------------------------------
revno: 3023.1.3
revision-id:bialix at ukr.net-20071126234215-dwyxq2ww5sg3xzua
parent: bialix at ukr.net-20071126085441-lx9pwr0gcahikyp4
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: hidden.dot.bzr
timestamp: Tue 2007-11-27 01:42:15 +0200
message:
John's review
modified:
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
------------------------------------------------------------
revno: 3023.1.2
revision-id:bialix at ukr.net-20071126085441-lx9pwr0gcahikyp4
parent: bialix at ukr.net-20071126080822-iel61wjqbkju9s0v
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: hidden.dot.bzr
timestamp: Mon 2007-11-26 10:54:41 +0200
message:
Martin's review.
modified:
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/win32utils.py win32console.py-20051021033308-123c6c929d04973d
------------------------------------------------------------
revno: 3023.1.1
revision-id:bialix at ukr.net-20071126080822-iel61wjqbkju9s0v
parent: pqm at pqm.ubuntu.com-20071125173141-g89p6qnnh90tk5zi
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: hidden.dot.bzr
timestamp: Mon 2007-11-26 10:08:22 +0200
message:
Mark .bzr directories as "hidden" on Windows (#71147)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
=== modified file 'NEWS'
--- a/NEWS 2007-11-26 19:54:09 +0000
+++ b/NEWS 2007-11-27 00:04:16 +0000
@@ -104,6 +104,9 @@
* Make sure Repository.fetch(self) is properly a no-op for all
Repository implementations. (John Arbash Meinel, #158333)
+ * Mark .bzr directories as "hidden" on Windows.
+ (Alexander Belchenko, #71147)
+
* ``merge --uncommitted`` can now operate on a single file.
(Aaron Bentley, Lukáš Lalinský, #136890)
=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py 2007-11-26 21:33:20 +0000
+++ b/bzrlib/bzrdir.py 2007-11-27 00:04:16 +0000
@@ -29,6 +29,7 @@
from cStringIO import StringIO
import os
+import sys
from bzrlib.lazy_import import lazy_import
lazy_import(globals(), """
@@ -48,10 +49,11 @@
symbol_versioning,
ui,
urlutils,
+ win32utils,
+ workingtree,
+ workingtree_4,
xml4,
xml5,
- workingtree,
- workingtree_4,
)
from bzrlib.osutils import (
sha_strings,
@@ -1355,6 +1357,8 @@
# FIXME: RBC 20060121 don't peek under
# the covers
mode=temp_control._dir_mode)
+ if sys.platform == 'win32' and isinstance(transport, LocalTransport):
+ win32utils.set_file_attr_hidden(transport._abspath('.bzr'))
file_mode = temp_control._file_mode
del temp_control
mutter('created control directory in ' + transport.base)
=== modified file 'bzrlib/tests/test_bzrdir.py'
--- a/bzrlib/tests/test_bzrdir.py 2007-10-25 02:06:19 +0000
+++ b/bzrlib/tests/test_bzrdir.py 2007-11-26 23:42:15 +0000
@@ -21,6 +21,8 @@
import os.path
from StringIO import StringIO
+import subprocess
+import sys
from bzrlib import (
bzrdir,
@@ -29,6 +31,7 @@
repository,
symbol_versioning,
urlutils,
+ win32utils,
workingtree,
)
import bzrlib.branch
@@ -42,6 +45,7 @@
from bzrlib.tests import (
TestCase,
TestCaseWithTransport,
+ TestSkipped,
test_sftp_transport
)
from bzrlib.tests.HttpServer import HttpServer
@@ -870,3 +874,32 @@
"""Tests redirections for pycurl implementation"""
_qualifier = 'pycurl'
+
+
+class TestDotBzrHidden(TestCaseWithTransport):
+
+ ls = ['ls']
+ if sys.platform == 'win32':
+ ls = [os.environ['COMSPEC'], '/C', 'dir', '/B']
+
+ def get_ls(self):
+ f = subprocess.Popen(self.ls, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ out, err = f.communicate()
+ self.assertEqual(0, f.returncode, 'Calling %s failed: %s'
+ % (self.ls, err))
+ return out.splitlines()
+
+ def test_dot_bzr_hidden(self):
+ if sys.platform == 'win32' and not win32utils.has_win32file:
+ raise TestSkipped('unable to make file hidden without pywin32 library')
+ b = bzrdir.BzrDir.create('.')
+ self.build_tree('a')
+ self.assertEquals(['a'], self.get_ls())
+
+ def test_dot_bzr_hidden_with_url(self):
+ if sys.platform == 'win32' and not win32utils.has_win32file:
+ raise TestSkipped('unable to make file hidden without pywin32 library')
+ b = bzrdir.BzrDir.create(urlutils.local_path_to_url('.'))
+ self.build_tree('a')
+ self.assertEquals(['a'], self.get_ls())
=== modified file 'bzrlib/win32utils.py'
--- a/bzrlib/win32utils.py 2007-08-11 05:44:04 +0000
+++ b/bzrlib/win32utils.py 2007-11-26 08:54:41 +0000
@@ -64,6 +64,11 @@
else:
create_buffer = ctypes.create_unicode_buffer
suffix = 'W'
+try:
+ import win32file
+ has_win32file = True
+except ImportError:
+ has_win32file = False
# Special Win32 API constants
@@ -319,3 +324,9 @@
_winreg.CloseKey(hkey)
return fullpath
+
+
+def set_file_attr_hidden(path):
+ """Set file attributes to hidden if possible"""
+ if has_win32file:
+ win32file.SetFileAttributes(path, win32file.FILE_ATTRIBUTE_HIDDEN)
More information about the bazaar-commits
mailing list