Как мне зафиксировать только изменения имени файла в Git?

Я не знаю, почему вы получаете сообщение ORA-06512 без другого сообщения об ошибке над ним. Вы уверены, что вы ввели все сообщение об ошибке?

ORA-06512 используется только при печати трассировки стека при возникновении исключения в коде PL / SQL. Вот полный пример:

ERROR at line 1:
ORA-01001: invalid cursor
ORA-06512: at "USER.SOME_PROCEDURE", line 5
ORA-06512: at line 1

Настоящая ошибка здесь - ORA-01001. ORA-06512s просто указывают, где произошла ошибка: в строке 5 из USER.SOME_PROCEDURE, которая была вызвана по строке 1 анонимного блока PL / SQL.

Взглянув на ваш код, я могу заметить пара проблем:

  • При использовании FOR ... IN some_cursor LOOP ... вы не должны явно открывать и закрывать курсор. Это будет сделано для вас автоматически с помощью цикла FOR.
  • Вы также не должны пытаться закрыть курсор, который не был открыт. Если вы попытаетесь это сделать, вы получите сообщение об ошибке «неправильный курсор» ORA-01001. Я предполагаю, что вы включили это, чтобы убедиться, что курсор был закрыт, прежде чем вы его открыли, но, к сожалению, вы не можете этого сделать.

Короче говоря, вы должны удалить все OPEN и CLOSE из вашей процедуры и повторите попытку.

1071
задан Gil Shulman 25 July 2014 в 21:23
поделиться

1 ответ

Я взял ответ @CBarr и записал Сценарий Python 3, чтобы сделать это со списком файлов:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import os
import shlex
import subprocess

def run_command(absolute_path, command_name):
    print( "Running", command_name, absolute_path )

    command = shlex.split( command_name )
    command_line_interface = subprocess.Popen( 
          command, stdout=subprocess.PIPE, cwd=absolute_path )

    output = command_line_interface.communicate()[0]
    print( output )

    if command_line_interface.returncode != 0:
        raise RuntimeError( "A process exited with the error '%s'..." % ( 
              command_line_interface.returncode ) )

def main():
    FILENAMES_MAPPING = \
    [
        (r"F:\\SublimeText\\Data", r"README.MD", r"README.md"),
        (r"F:\\SublimeText\\Data\\Packages\\Alignment", r"readme.md", r"README.md"),
        (r"F:\\SublimeText\\Data\\Packages\\AmxxEditor", r"README.MD", r"README.md"),
    ]

    for absolute_path, oldname, newname in FILENAMES_MAPPING:
        run_command( absolute_path, "git mv '%s' '%s1'" % ( oldname, newname ) )
        run_command( absolute_path, "git add '%s1'" % ( newname ) )
        run_command( absolute_path, 
             "git commit -m 'Normalized the \'%s\' with case-sensitive name'" % (
              newname ) )

        run_command( absolute_path, "git mv '%s1' '%s'" % ( newname, newname ) )
        run_command( absolute_path, "git add '%s'" % ( newname ) )
        run_command( absolute_path, "git commit --amend --no-edit" )

if __name__ == "__main__":
    main()
1
ответ дан user 4 October 2019 в 07:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: