tortoise-svn
tortoise-svn copied to clipboard
Cannot read property 'file' of undefined
windows 10 + atom 1.12.5 + tortoise-svn 0.5.0 D:\server.atom\packages\tortoise-svn\lib\tortoise-svn.coffee:31 Hide Stack Trace TypeError: Cannot read property 'file' of undefined at resolveEditorFile (file:///D:/server/.atom/packages/tortoise-svn-0.5.0/lib/tortoise-svn.coffee:31:24) at Object.addFromEditor (file:///D:/server/.atom/packages/tortoise-svn-0.5.0/lib/tortoise-svn.coffee:227:16) at atom-workspace.atom.commands.add.tortoise-svn:addFromEditor (file:///D:/server/.atom/packages/tortoise-svn-0.5.0/lib/tortoise-svn.coffee:159:75) at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (D:\server\Atom\resources\app.asar\src\command-registry.js:259:29) at CommandRegistry.handleCommandEvent (D:\server\Atom\resources\app.asar\src\command-registry.js:3:59) at CommandRegistry.module.exports.CommandRegistry.dispatch (D:\server\Atom\resources\app.asar\src\command-registry.js:160:19) at AtomEnvironment.module.exports.AtomEnvironment.dispatchApplicationMenuCommand (D:\server\Atom\resources\app.asar\src\atom-environment.js:1136:28) at EventEmitter.outerCallback (D:\server\Atom\resources\app.asar\src\application-delegate.js:319:25) at emitTwo (events.js:106:13) at EventEmitter.emit (events.js:191:7)
你这里应该使用tortoise-svn:addFromTreeView指令,完成SVN的操作; tortoise-svn:addFromEditor是对具体的文件进行svn操作; 今天刚开始使用atom,也遇到了这个问题,就调试研究了一下,然后我这里的问题解决了,希望对你能有帮助; 我的调试过程如下:
对目录进行svn操作时,调用formEditor命令会出现该情况; 通过ctrl+shift+i,调出console,添加断点调试,发现对目录和对单个文档的处理函数不同:
resolveTreeSelection = ->
if atom.packages.isPackageLoaded("tree-view")
treeView = atom.packages.getLoadedPackage("tree-view")
treeView = treeView.mainModule.treeView
treeView.selectedPath
resolveEditorFile = ->
editor = atom.workspace.getActivePaneItem()
file = editor?.buffer.file
file?.path
addFromTreeView: ->
currFile = resolveTreeSelection()
add(currFile) if currFile?
addFromEditor: ->
currFile = resolveEditorFile()
add(currFile) if currFile?
通过自定义快捷键,在目录上操作时调用不同的命令,快捷键配置如下:
'atom-workspace':
'alt-b': 'tortoise-svn:blameFromTreeView'
'alt-c': 'tortoise-svn:commitFromTreeView'
'alt-d': 'tortoise-svn:diffFromTreeView'
'alt-l': 'tortoise-svn:logFromTreeView'
'alt-r': 'tortoise-svn:revertFromTreeView'
'alt-u': 'tortoise-svn:updateFromTreeView'
现在就可以在任何地方做svn操作了;