2014-11-19 3 views
2

우리는 모든 소스에 Git을 사용하려고합니다. 우리는 다른 언어 (PHP, SQL, RPGLE, JavaScript 등)를 가지고 있으며 소스 위치를 중앙 집중화하려고합니다. 또한 Git은 iSeries 기반 SCM에 비해 많은 이점을 제공합니다.GitHub에서 iSeries로 RPGLE 통합 (IBM i)

소스를 Git에 가져 오는 것은 상당히 간단합니다. Git repos에서 iSeries로 코드를 이동하는 방법에 대해 고민하고 있습니다.

IDE 용 RDi를 사용하고 eGit 플러그인을 설치했지만 변경된 소스를 로컬 PC에서 iSeries (개발자의 개인 라이브러리)로 이동하는 방법에 어려움을 겪고 있습니다.

하나를 수행 했습니까? 이 설정을 실행하는 데 도움을 줄 수 있습니까?

+0

"수정 된 소스를"PC에서 iSeries로 이동하려고하는 이유는 무엇입니까? "Git 수정을 커밋"해서는 안되며, iSeries (그것이 무엇이든간에) Git에서 읽기/받기 /보기/수정을 가져 오지 않아야합니까? – quetzalcoatl

+0

또한 (말도 안되는 경우 실례지만, RDi/iSeries가 무엇인지는 알지 못한다. 나는 당신이 작성한 것에 대해 약간의 판단을 내려야한다고 판결한다.) 왜 "Git에서 RPGLE 코드"라는 질문을 했는가? Git repo에 커밋/저장/푸시/풀링에 문제가 있습니까? 아니면 quititon이 "iSeries와 Git repo"를 통합하는 것이 아닌가? – quetzalcoatl

+2

@quetzalcoatl, [iSeries] (http://en.wikipedia.org/wiki/IBM_System_i) (현재 IBM System i라고 함)는 AS/400으로 불리며, "중간 규모의 컴퓨터"("소형 메인 프레임"이라고 생각)는 IBM. [RDi] (http://arcadsoftware.com/products/rdi-rational-developer-for-i/)는 이클립스 위에 구축 된 iSeries 용 IDE입니다. – Chris

답변

1

좋아,이게 해결 된 것 같아.여기에 내가 무슨 짓을 : 이 작업을 진행하려면 프로젝트를 사용해야합니다 :

는 eGit

프로젝트를 설치합니다. 이 부분은 약간의 학습 곡선이 될 것이지만, 일단 당신이 그것을 배워 가면 정말 쉽습니다.

I 프로젝트 구성 : 줄 번호와 날짜는 원하지 않습니다 (밀기/당기기에서 오류가 발생 함).
탐색 창> 환경 설정> I 프로젝트 클릭

만들기 iSeries의 프로젝트 '일련 번호 작업 추가 및 제거 사용'을 클릭 '다운로드에 일련 번호와 날짜 필드를 제거': 파일> 새로 만들기> 프로젝트 IBM에 대한 검색 다음을 클릭합니다 이름 다음에 연관된 라이브러리를 선택하여 원격 서버 에 대한 연결을 선택 클릭 프로젝트를 IBM I 프로젝트를 선택 마침을 클릭합니다 (PD lib 디렉토리는 가장이다)

프로젝트 탐색기에서 프로젝트를 볼 수 있습니다. 원격 시스템 탐색기 에

이동

이제 당신이해야 전체 Qblah 'I 프로젝트에 추가'를 마우스 오른쪽 버튼을 클릭하고 선택 필터의 맥락에서 당신의 Q * 소스 파일 에 대한 오브젝트 필터 만들기 프로젝트의 소스 파일

Create Git Project 프로젝트 탐색기에서 마우스 오른쪽 버튼을 클릭하고 가져 오기를 선택하십시오. 여기

기존 지역의 체크 아웃을 사용하거나 새의 repo를 복제 할 수 있습니다 다음 힘내 클릭에서 유형 힘내 선택 프로젝트 (가져 오기> 가져 오기를 선택해야 할 수 있음).
복제를 선택 URI 다음을 클릭합니다 프로토콜/가져올 선택 분기 (들) (바로 이전에 방문 위키 등) URI는 다음 선택 대상 폴더 다음을 클릭 만들기 클릭 (마스터를 권장)를 입력 '일반 프로젝트로 가져 오기'를 클릭하고 다음을 클릭하십시오. 프로젝트 이름을 지정하십시오 (Git-repoName 권장) 클릭 완료

이제 두 개의 프로젝트가 표시됩니다.

편집 Git 프로젝트에서 소스를 선택하고 편집 할 수 있습니다. 올바른 lpex 편집기가 열리고 좋은 결과를 얻을 수 있습니다.

iSeries로 보내기 이것은 다소 까다로울 수 있습니다.
가 망할 놈의 repo 복사를 선택 에서 수정 된 소스를 클릭 오른쪽은 iSeries에 보내고 컴파일 시간이되면 오른쪽

다음으로 이동 붙여 넣기하여 IBM 프로젝트 소스 파일에서 적절한 Q의 *를 클릭하고 선택 원격 조정자 탭에 소스 또는 파일을 마우스 오른쪽 버튼으로 클릭하고 '밀어 넣기'를 선택한 다음 원격 항목을 선택하십시오.

BAM! 코드는 iSeries에 있으므로 컴파일 할 준비가되었습니다.

Git으로 커밋 Git 프로젝트에서 마우스 오른쪽 버튼을 클릭하고 Team> Commit을 선택합니다. 선택/해제 선택

횟수 (원격의 repo에 커밋) (지역에만 커밋) 또는 커밋하고 푸시 커밋 메시지 클릭을 입력 원하는 변경 소스를! 이제 iSeries 기반 코드를 Git으로 가져 오기 시작할 수 있습니다!

+0

원격 작업> 푸시 및 원격 작업> 컴파일에 iProjects를 사용하고 있습니다. 코드베이스에 만족하면 Git repo view와 Commit으로 바꾼다. –

4

IBM i에서 '변경 제어'는 소스 변경 관리 이상의 의미가 있다는 사실을 명심해야합니다.

심각한 변경 제어 시스템의 경우 재 컴파일, 객체 속성 보존, 원격 배포, 파일 데이터 보존, 객체 관계 등을 모두 고려해야합니다.

소스 코드 변경 제어와 관련된 모든 사항은 PASE (또는 SVN)의 GIT로 충분할 수 있지만 감사 요구 사항을 충족 시키려면 훨씬 더 강력한 기능이 필요할 것입니다. .

+0

데이비드. 자식은 소스 저장소 일뿐입니다. 나열된 다른 모든 측면에 대해서는 승격을 위해 iSeries SCM (구현 자)을 계속 사용합니다. 이것을 설명하는 가장 좋은 방법은 Git이 코드를 보유하고 있지만 Jenkins가 배포를 처리하는 PHP 스택과 비슷합니다. – jgriffin

+0

@jgriffin 그렇기 때문에 나는 Implementer에서 PTC를 위해 일한다. (필자의 대답에 특정 제품 레퍼런스는 사용하지 않았다.) 그래서 나는 꽤 친숙하다. Integrity를 ​​통해 소스 관리 기능을 사용할 수 있습니다. 정보에 관심이 있으시면 dgibbs ptc.com에 연락하십시오. (나는이 의견으로 어떤 규칙도 어기 지 않기를 바랍니다.) –

2

RDi의 경우 가장 쉬운 인터페이스는 iProjects입니다.

SVN과 iProjects의 인터페이스는 http://www.taskforce-it.de/en/download.html입니다. 아니오, Git는 아니지만 pdf는 변경 사항을 편집하여 IBM i로 다시 보내는 일반적인 메커니즘을 설명합니다.

소스 변경 날짜 및 일련 번호가 손실됩니다.

+0

Git (와 그 이전의 CVS와 그 이전의 CVS)이 스스로를 * version * 제어 시스템이라고 부르는 이유가 있습니다.표준 스트림 기반 소스 파일과 관련 교환 도구는 회선 변경 날짜를 훨씬 덜 중요하게 만듭니다. 즉, IBM 미드 레인지 커뮤니티의 상당 부분에서 라인 날짜가 여전히 중요하며, Mercurial을 사용하여 Python/RPG/CL을 결합한 프로젝트를 관리 할 때 RPG 및 CL의 라인 변경 날짜가 포함되었습니다. (순차 번호는 실제로 쓸모가 없으며 실제로 diff를 뒤범벅합니다.) –

1

jgriffin 저는 프로젝트 전체를 대상으로 한 실험으로서 이것을 정확하게 수행하고 있습니다. 전체 엔터프라이즈 소스가 아닙니다.

이것이 내가 배운 것입니다.
1. 원본에 RDi 연결을 생성하십시오.
2. 로컬 시스템에서 iSeries 프로젝트를 작성하십시오.
3. 프로젝트에 폴더를 만듭니다. 이것은 소스 위치가됩니다.
4.이 폴더에서 git 저장소를 초기화하십시오.
5. iSeries 연결을 사용하여 소스를 로컬 폴더로 가져 오십시오.
6. 첫 번째 커밋을하고 그게 전부입니다! 이제 프로젝트에 코드베이스가 생겼습니다.

귀하의 소스에서 평소와 같이 작업하십시오. 그런 다음 새로운 커밋을 완료했다고 생각하면 RDi에서 Remote Reconcilier보기를 사용하거나 수정 된 코드를 폴더로 가져온 다음 git을 사용하여 새로운 커밋을 만듭니다.

롤백, 체크 아웃 및 다른 것들은 테스트하지 않았습니다. 때가 올 때 나는 할 것이다. 이게 너에게 어떻게 작용하는지 알려줘.

행운을 비네.

JF.

+1

어떻게 원격 조정자가 작동하게 되었습니까? 내가 iseries에 푸시하려고 시도 할 때마다 충돌 오류가 발생하고 충돌하는 부분을 볼 수 없습니다 (특히 새 파일/멤버이므로). – jgriffin