sessões bash recuperáveis com manutenção de ramificação

1

Existe um utilitário que agiliza o armazenamento e a restauração de sessões bash? Eu gostaria de poder fazer EG

$ KUNG=pao
$ foo commit  # saves the current environment
              # as an anonymous changeset from the previous savepoint
$ SCHNICKENS="What's up, doc?"
$ SCHNICKENS="$(echo Schmoove)"
$ unset KUNG
$ foo diff HEAD  # outputs a $(set) of commands
                 # which comprise the current changeset
unset KUNG;
SCHNICKENS="Schmoove"
$ foo branch edit-su-question  # creates a new branch with that name
$ foo merge master  # updates the current environment
                    # with any changes made to ~/.bashrc
                    # since it was branched or last merged
$ function fierce_fist_of_foo {
      cut -f 2 | xargs -I {} bash foo {} '>>' ffof.out;
  }
$ foo checkout master  # switches current branch
                       # to the one checked out by ~/.bashrc
$ foo commit -m "learned the fierce_fist_of_foo technique"
  # new interactive 'bash' invocations now load that function

Devido a sua semelhança com o conjunto de comandos git , sou tentado a usar uma palavra obscena ou, alternativamente, um título de álbum do Smashing Pumpkins, como o nome do comando neste exemplo. Mas bom ole foo é.

Estou baseando minha fé na funcionalidade deste conceito, em grande parte, na suposição de que executar set de um shell bash fornecerá um script invokable que restaurará esse ambiente. Não tenho certeza se isso é inteiramente verdade.

De qualquer forma , há algo lá fora que funciona assim? Pontos extras se realmente usar git como parte de sua implementação. Eu aceito essa resposta. Desde que você está apenas para os pontos e todos.

    
por intuited 29.06.2010 / 04:52

1 resposta

1

Tenho certeza de que alguém poderia criar algo usando env e source .

 # "commit"
 env > saved_state

 # "checkout"
 source saved_state

Todo o resto seria interface de açúcar. Poderíamos até mesmo criar scripts para colocar os arquivos saved_state em algum repositório git em algum lugar automaticamente, para que alguém pudesse navegar com tig .

Tenho que admitir que estou horrorizado com o potencial de fluxos de trabalho extremamente confusos e confusos que isso permitiria.

    
por 29.06.2010 / 05:03