Changeset 8b328243399a…
Parent 3275aa47d112…
by
Changes to 3 files · Browse files at 8b328243399a Showing diff from parent 3275aa47d112 Diff from another changeset...
@@ -11,6 +11,18 @@ from tortoisehg.hgqt import qtlib
from tortoisehg.hgqt.i18n import _
+class LfilesPrompt(qtlib.CustomPrompt):
+ def __init__(self, parent, files=None):
+ qtlib.CustomPrompt.__init__(self, _('Confirm Add'),
+ _('Some of the files that you have selected are of a size '
+ 'over 10 MB. You may make more efficient use of disk space '
+ 'by adding these files as largefiles, which will store only the '
+ 'most recent revision of each file in your local repository, '
+ 'with older revisions available on the server. Do you wish '
+ 'to add these files as largefiles?'), parent,
+ (_('Add as &Largefiles'), _('Add as &Normal Files'), _('Cancel')),
+ 0, 2, files)
+
class BfilesPrompt(qtlib.CustomPrompt):
def __init__(self, parent, files=None):
qtlib.CustomPrompt.__init__(self, _('Confirm Add'),
@@ -23,30 +35,39 @@ (_('Add as &Bfiles'), _('Add as &Normal Files'), _('Cancel')),
0, 2, files)
-def promptForBfiles(parent, ui, repo, files):
- bfiles = []
- usekbf = os.path.exists(repo.standin('.kbf'))
- minsize = int(ui.config('kilnbfiles', 'size', default='10'))
- patterns = ui.config('kilnbfiles', 'patterns', default=())
+def promptForLfiles(parent, ui, repo, files, haskbf=False):
+ lfiles = []
+ usekbf = os.path.exists('.kbf')
+ uself = os.path.exists('.hglf')
+ useneither = not usekbf and not uself
+ if haskbf:
+ section = 'kilnbfiles'
+ else:
+ section = 'largefiles'
+ minsize = int(ui.config(section, 'size', default='10'))
+ patterns = ui.config(section, 'patterns', default=())
if patterns:
patterns = patterns.split(' ')
matcher = match.match(repo.root, '', list(patterns))
else:
matcher = None
for wfile in files:
- if not matcher or not matcher(wfile) or not usekbf:
+ if not matcher or not matcher(wfile) or useneither:
filesize = os.path.getsize(repo.wjoin(wfile))
- if filesize >= 10*1024*1024 and (filesize < minsize*1024*1024 or not usekbf):
- bfiles.append(wfile)
- if bfiles:
- ret = BfilesPrompt(parent, files).run()
+ if filesize >= 10*1024*1024 and (filesize < minsize*1024*1024 or useneither):
+ lfiles.append(wfile)
+ if lfiles:
+ if haskbf:
+ ret = BfilesPrompt(parent, files).run()
+ else:
+ ret = LfilesPrompt(parent, files).run()
if ret == 0:
- # add as bfiles
- for bfile in bfiles:
- files.remove(bfile)
+ # add as largefiles/bfiles
+ for lfile in lfiles:
+ files.remove(lfile)
elif ret == 1:
# add as normal files
- bfiles = []
+ lfiles = []
elif ret == 2:
return None
- return files, bfiles
+ return files, lfiles
|
@@ -102,10 +102,16 @@ toplayout.addLayout(hbox)
self.bb = bb
- if self.command == 'add' and 'kbfiles' in self.repo.extensions():
- self.addBfilesButton = QPushButton(_("Add &Bfiles"))
- self.addBfilesButton.clicked.connect(self.addBfiles)
- bb.addButton(self.addBfilesButton, BB.ActionRole)
+ if self.command == 'add':
+ if 'largefiles' in self.repo.extensions():
+ self.addLfilesButton = QPushButton(_('Add &Largefiles'))
+ if 'kbfiles' in self.repo.extensions():
+ self.addLfilesButton = QPushButton(_("Add &Bfiles"))
+ else:
+ self.addLfilesButton = None
+ if self.addLfilesButton:
+ self.addLfilesButton.clicked.connect(self.addLfiles)
+ bb.addButton(self.addLfilesButton, BB.ActionRole)
layout.addWidget(self.statusbar)
@@ -142,8 +148,10 @@ return
if self.command == 'remove':
self.repo.bfstatus = True
+ self.repo.lfstatus = True
repostate = self.repo.status()
self.repo.bfstatus = False
+ self.repo.lfstatus = False
unknown, ignored = repostate[4:6]
for wfile in files:
if wfile in unknown or wfile in ignored:
@@ -152,9 +160,10 @@ except EnvironmentError:
pass
files.remove(wfile)
- elif self.command == 'add' and 'kbfiles' in self.repo.extensions():
- self.addWithPrompt(files)
- return
+ elif self.command == 'add':
+ if 'largefiles' in self.repo.extensions() or 'kbfiles' in self.repo.extensions():
+ self.addWithPrompt(files)
+ return
if files:
cmdline.extend(files)
self.files = files
@@ -175,8 +184,11 @@ s.setValue('quickop/nobackup', self.chk.isChecked())
QDialog.reject(self)
- def addBfiles(self):
- cmdline = ['add', '--bf']
+ def addLfiles(self):
+ if 'kbfiles' in self.extensions():
+ cmdline = ['add', '--bf']
+ else:
+ cmdline = ['add', '--large']
files = self.stwidget.getChecked()
if not files:
qtlib.WarningMsgBox(_('No files selected'),
@@ -188,7 +200,8 @@ self.cmd.run(cmdline)
def addWithPrompt(self, files):
- result = lfprompt.promptForBfiles(self, self.repo.ui, self.repo, files)
+ result = lfprompt.promptForBfiles(self, self.repo.ui, self.repo, files,
+ 'kbfiles' in self.extensions())
if not result:
return
files, bfiles = result
@@ -198,7 +211,10 @@ self.files = files
self.cmd.run(cmdline)
if bfiles:
- cmdline = ['add', '--bf']
+ if 'kbfiles' in self.extensions():
+ cmdline = ['add', '--bf']
+ else:
+ cmdline = ['add', '--large']
cmdline.extend(bfiles)
self.files = bfiles
self.cmd.run(cmdline)
|
@@ -52,8 +52,10 @@ allactions.append(None)
make(_('&Forget'), forget, frozenset('MAC!'), 'filedelete')
make(_('&Add'), add, frozenset('I?'), 'fileadd')
- if 'kbfiles' in self.repo.extensions():
- make(_('Add &Bfiles'), addbf, frozenset('I?'))
+ if 'largefiles' in self.repo.extensions():
+ make(_('Add &Largefiles...'), addlf, frozenset('I?'))
+ elif 'kbfiles' in self.repo.extensions():
+ make(_('Add &Bfiles'), addlf, frozenset('I?'))
make(_('&Detect Renames...'), guessRename, frozenset('A?!'),
'detect_rename')
make(_('&Ignore...'), ignore, frozenset('?'), 'ignore')
@@ -268,24 +270,36 @@ return True
def add(parent, ui, repo, files):
- if 'kbfiles' in repo.extensions():
+ haslf = 'largefiles' in repo.extensions()
+ if haslf or 'kbfiles' in repo.extensions():
result = bfprompt.promptForBfiles(parent, ui, repo, files)
if not result:
return False
- files, bfiles = result
+ files, lfiles = result
for name, module in extensions.extensions():
+ if name == 'largefiles':
+ override_add = module.lfsetup.override_add
+ if files:
+ override_add(commands.add, ui, repo, *files)
+ if lfiles:
+ override_add(commands.add, ui, repo, large=True, *lfiles)
+ return True
if name == 'kbfiles':
override_add = module.bfsetup.override_add
if files:
override_add(commands.add, ui, repo, *files)
- if bfiles:
- override_add(commands.add, ui, repo, bf=1, *bfiles)
+ if lfiles:
+ override_add(commands.add, ui, repo, bf=True, *lfiles)
return True
commands.add(ui, repo, *files)
return True
def addbf(parent, ui, repo, files):
for name, module in extensions.extensions():
+ if name == 'largefiles':
+ override_add = module.lfsetup.override_add
+ override_add(commands.add, ui, repo, large=True, *files)
+ return True
if name == 'kbfiles':
override_add = module.bfsetup.override_add
override_add(commands.add, ui, repo, bf=True, *files)
|
Loading...