Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

Protheus :: "Integrando o Totvs Development Studio (IDE) ao TortoiseSVN"



Hoje postarei uma dica de como integrar o Totvs Development Studio (IDE) ao SVN (Subversion) utilizando o "client" TortoiseSVN para controle de versão dos fontes do Totvs/Protheus.

Utilizaremos, para isso, macros do IDE. No Exemplo, a macro $SOURCE_NAME irá retornar o caminho completo do "fonte" a ser manipulado. Algumas macros do IDE são:

$SOURCE_NAME
$SOURCE_NAME_NO_DRIVE
$SOURCE_SHORT_NAME
$SOURCE_CURSOR_LINE
$SOURCE_CURSOR_COLUMN
$SOURCE_CURSOR_WORD
$SOURCE_EXECUTION_LINE
$SOURCE_PATH
$SOURCE_EXT
$SOURCE_DRIVE
$SYSTEM_DATE
$SYSTEM_TIME
$SYSTEM_USER_NAME
$SYSTEM_USER_ACCESS
$VERSION_ADD_FILE
$VERSION_ASK_FOR_COMMENT
$VERSION_CHECK_OUT
$VERSION_CHECK_IN
$VERSION_GET_LAST
$VERSION_REMOVE_FILE
$VERSION_UNDO_CHECK_OUT

Observações:
  1. Se o server do SubVersion estiver em linux, não utilize a macro $SOURCE_NAME_NO_DRIVE, pois essa, quando o arquivo "fonte" possui _ ("underline"), passa-o como "upper case" fazendo com que o cliente do SubVersion, o TortoiseSVN não consiga encontrar o arquivo;
  2. Para que seja possível efetuar o "lock/unlock" dos "fontes" a propriedade "svn:needs-lock" deverá ter sido atribuida aos arquivos que deseja versionar;
Vamos ao que interessa:
  • Abra o "Totvs Development Studio" (IDE) executando o arquivo TotvsDevStudio.exe;
  • No menu Arquivo\Preferências, selecione a "aba" Controle de Versão;
  • Marque o "check box" Utiliza Controle de Versão;
  • Dentre as opções "Visual Source Safe" e "Outros", selecione: "Outros";
  • Configure as opções como abaixo:




  1. Software: TortoiseProc.exe
  2. Iniciar em: %ProgramFiles%\TortoiseSVN\bin\
  3. Última Versão: /command:update /path:"$SOURCE_NAME" /notempfile /closeonend:3
  4. Reservar: /command:lock /path:"$SOURCE_NAME" /notempfile /closeonend:3
  5. Canc. Reserva: /command:unlock /path:"$SOURCE_NAME" /notempfile /closeonend:3
  6. Confirmar: /command:commit /path:"$SOURCE_NAME" /notempfile /closeonend:3
  7. Adicionar: /command:add /path:"$SOURCE_NAME" /notempfile /closeonend:3
  8. Remover: /command:remove /path:"$SOURCE_NAME" /notempfile /closeonend:3
Se preferir, copie e cole o conteúdo abaixo no totvsdevstudio.ini na seção "[Source Control]"

[Source Control]
Source Control Software=TortoiseProc.exe
Initial Path=%ProgramFiles%\TortoiseSVN\bin\
Get Latest Version=/command:update /path:"$SOURCE_NAME" /notempfile /closeonend:3
Check In=/command:commit /path:"$SOURCE_NAME" /notempfile /closeonend:3
Check Out=/command:lock /path:"$SOURCE_NAME" /notempfile /closeonend:3
Add File=/command:add /path:"$SOURCE_NAME" /notempfile /closeonend:3
Remove File=/command:remove /path:"$SOURCE_NAME" /notempfile /closeonend:3
Undo Check Out=/command:unlock /path:"$SOURCE_NAME" /notempfile /closeonend:3

e altere a chave "Use Source Control" de 0 para 1 como em: Use Source Control=1 na seção [Preferences].

Ao fazer isso, será disponibilizada uma nova "palheta" com as seguintes opções:



Onde:

obtém a última versão do arquivo

efetua a reserva do arquivo

confirma as alterações enviando-as para o software de versionamento

desfaz/cancela a reserva

adiciona arquivo ao controle de versionamento

remove arquivo do controle de versionamento

Para informações e download do SubVersion, clique aqui;
Para baixar o TortoiseSVN clique aqui; e
Para mais informações de como utilizar o TortoiseSVN em linha de comando, clique aqui;

Comentários

  1. Ola Naldo. Voce eh o cara! Dah uma olhada nesse projeto e entra em contato comigo por favor: http://sourceforge.net/projects/pactvs pegue o documento com a descricao do projeto no link "files".
    Abracos
    MSilver

    ResponderExcluir
  2. Naldo meus parabéns ficou incrível...

    Jean

    ResponderExcluir
  3. Boa tarde Naldo.
    No caso de termos vários programadores, o TortoiseSVN será instalado no servidor de aplicação ou nas máquinas dos programadores ???
    Muito obrigado.

    ResponderExcluir
  4. Rodrigo,

    O TortoiseSVN é o "client" do SubVersion ou SVN e, dada a sua característica, deverá ser instalado no ambiente local de trabalho. Para não me alongar no comentário vou fazer-lhe uma pequena, mas útil, recomendação: Acompanhe os "Links" do Post: Dicas de Leitura :: SVN http://naldodjblogs.blogspot.com/2011/09/dicas-de-leitura-svn.html que vc encontrará boas recomendações.

    []s

    иαldσ dj

    ResponderExcluir
  5. Belíssimo tutorial Naldo.
    Parabéns pela dedicação e didática.

    Ronaldo Marins

    ResponderExcluir
  6. Olá Naldo.

    Você sabe me dizer se esses procedimentos podem ser aplicados para integrar a IDE com TFS 2012?

    Obrigada.

    ResponderExcluir
    Respostas
    1. Se estiver utilizando o TDS basta instalar o plug-in do TFS para Eclipse. Existem bons materiais na nuvem. Procure por TFS Eclipse. Já para a antiga IDE você terá que descobrir os comandos equivalentes aos do tortoise para check-in, check-out, etc... e aí, basta substituí-los.

      Excluir
  7. Como a TOTVS tem essa particularidade de controlar os fontes por data/hora conforme o RPO, qual ferramenta de versionamento de fontes consegue preservar a data/hora do arquivo ao realizar o commit do arquivo?

    ResponderExcluir
  8. Boa tarde Naldo.

    Também estou testando com o SVN, só não consegui que os fontes após o commit, a data/hora dos mesmos fossem preservadas conforme o arquivo.

    Você está conseguindo preservar a data/hora? Você consegue verificar se a data de um determinado fonte do RPO é igual a de um determinado arquivo no repositório do SVN?

    Obrigado.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas