Skip to content

Commit 670b5e4

Browse files
committed
Add README and copyright information for vsi-git
1 parent bb36868 commit 670b5e4

179 files changed

Lines changed: 2337 additions & 98 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

GIT-VERSION-GEN

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
#!/bin/sh
22

3+
# Copyright (C) 2025 VMS Software, Inc.
4+
#
5+
# This program is free software: you can redistribute it and/or modify it
6+
# under the terms of the GNU General Public License as published by the Free
7+
# Software Foundation version 2 of the License.
8+
#
9+
# This program is distributed in the hope that it will be useful, but WITHOUT
10+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11+
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12+
#
13+
# You should have received a copy of the GNU General Public License along with
14+
# this program. If not, see https://www.gnu.org/licenses/
315
GVF=GIT-VERSION-FILE
416
DEF_VER=v2.44.0
517

README.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,170 @@ and the name as (depending on your mood):
7272
[Documentation/SubmittingPatches]: Documentation/SubmittingPatches
7373
[Documentation/CodingGuidelines]: Documentation/CodingGuidelines
7474
[po/README.md]: po/README.md
75+
76+
# VSI Git Build and Installation Guide
77+
78+
### Overview
79+
The **IA64** system is used to build the VSI Git project for both **IA64** and **X86** architectures.
80+
For the **X86** build, a **cross-compiler** is used, and the build process is managed with **GNU/GNV make**.
81+
82+
---
83+
84+
### Build Preconditions
85+
To verify that the correct versions of **GNV** and **SSL** are installed, execute the following commands:
86+
```bash
87+
$ PROD SHOW PROD *GNV*
88+
$ PROD SHOW PROD *SSL3*
89+
```
90+
Ensure the following versions (or higher) are installed:
91+
92+
- **GNV** *V3.0-2*
93+
- **SSL** *V3.0-15 or later*
94+
95+
### X86 Requirements
96+
To verify that `SYS$LIBRARY:NATTABLES.EXE` is correctly set on your system, execute
97+
the following commands:
98+
```bash
99+
$ MCR AUTHORIZE MODIFY <USERNAME> /CLITABLES=SYS$LIBRARY:NATTABLES.EXE
100+
$ Re-Login
101+
```
102+
103+
### Initialization
104+
To properly initialize the build environment, the following command should be executed
105+
before running the make command:
106+
```bash
107+
$ SET PROCESS/PARSE_STYLE=EXTENDED
108+
$ DEFINE DECC$FILENAME_UNIX_NO_VERSION ENABLE
109+
$ DEFINE DECC$ARGV_PARSE_STYLE ENABLE
110+
$ DEFINE DECC$EFS_CHARSET ENABLE
111+
$ DEFINE OPENSSL "SSL3$INCLUDE:"
112+
$ DEFINE DECC$TEXT_LIBRARY SYS$LIBRARY:SYS$LIB_C.TLB
113+
$ @GNU:[LIB]GNV_SETUP.COM
114+
```
115+
116+
### Additional Initialization for *Cross-Build X86*
117+
```bash
118+
$ DEFINE DECC$TEXT_LIBRARY "X86$LIBRARY:SYS$LIB_C.TLB"
119+
$ DEFINE X86$LIBRARY_ADD <This should refer to appropriate libs like: LIBEXPAT.OLB, LIBZ64.OLB, SSL3$LIBCRYPTO_SHR.EXE, SSL3$LIBSSL_SHR.EXE>
120+
$ @SYS$STARTUP:X86_XTOOLS$SYLOGIN.COM
121+
```
122+
123+
### Build Steps
124+
To run the build procedure and create the installation **kit**, follow these steps:
125+
#### 1. Navigate to Your Git Project Directory
126+
```bash
127+
$ SET DEFAULT <GIT_PROJECT_DIRECTORY>
128+
```
129+
#### 2. Navigate to the VMS Subdirectory
130+
```bash
131+
$ SET DEFAULT [.VMS]
132+
```
133+
#### 3. Run the Build Script
134+
Execute the build script to build the project and create the **kit**.
135+
For the first build, you **must** use the **-C** flag to perform a clean build.
136+
```bash
137+
@BUILDALL.COM <ARCHITECTURE_NAME> <FLAG>
138+
```
139+
140+
---
141+
142+
### Alternative Build Method
143+
144+
You can also build and create the installation **kit** manually **without using** the *BUILDALL.COM* script.
145+
Here are the steps for doing it manually:
146+
147+
#### 1. X86 Systems Specific
148+
For X86 systems, you must change `/CLITABLES` to `SYS$LIBRARY:NATTABLES.EXE`.
149+
```bash
150+
$ MCR AUTHORIZE MODIFY <USER_NAME> /CLITABLES=SYS$LIBRARY:NATTABLES.EXE
151+
$ Re-Login
152+
```
153+
#### 2. Initialization
154+
Before starting the build, make sure you have completed all environment setup commands from the **Initialization** section above.
155+
For **X86 cross-builds**, also perform the steps in **Additional Initialization for *Cross-Build X86***.
156+
157+
#### 3. Navigate to Your Git Project Directory
158+
```bash
159+
$ SET DEFAULT <GIT_PROJECT_DIRECTORY>
160+
```
161+
#### 4. Switch to Bash
162+
```bash
163+
$ @SYS$STARTUP:GNV$SETUP
164+
$ BASH
165+
```
166+
Within Bash:
167+
```bash
168+
BASH-4.3$ vms/config.sh <platform architecture, native by default>
169+
```
170+
#### 5. Navigate to Build Folder Depending on the architecture, the build folder will vary (*e.g., IA64_build for IA64*):
171+
```bash
172+
BASH-4.3$ cd <build_folder>
173+
```
174+
#### 6. Run the Make Command
175+
```bash
176+
BASH-4.3$ make
177+
```
178+
Exit Bash:
179+
```bash
180+
BASH-4.3$ exit
181+
```
182+
183+
### Restore /CLITABLES After Build X86
184+
To restore the `/CLITABLES`, you can use the following commands:
185+
```bash
186+
$ MCR AUTHORIZE MODIFY <USERNAME> /CLITABLES=DCLTABLES
187+
$ Re-Login
188+
```
189+
190+
### Creating An Installation Kit
191+
- Copy Executables
192+
```bash
193+
$ COPY [.<BUILD_PLATFORM>]*.EXE; [-.VMS.KIT.<BUILD_PLATFORM>]
194+
```
195+
- To Create the Installation Kit for **IA64**
196+
```bash
197+
$ PRODUCT PACKAGE GIT/SOURCE=[-.VMS.KIT.IA64]VSI-I64VMS-GIT-V0244-1B-1.PCSI$DESC /DESTINATION=<PATH_TO_KIT> /OPT=NOCONFIRM /FORMAT=SEQUENTIAL /MATERIAL=<DESTINATION_FOR_FILES...>
198+
```
199+
- To Create the Installation Kit for **X86**
200+
```bash
201+
$ PRODUCT PACKAGE /BASE=X86VMS GIT/SOURCE=[-.VMS.KIT.X86_64]VSI-X86VMS-GIT-V0244-1B-1.PCSI$DESC /DESTINATION=<PATH_TO_KIT> /OPT=NOCONFIRM /FORMAT=SEQUENTIAL /MATERIAL=<DESTINATION_FOR_FILES...>
202+
```
203+
204+
---
205+
206+
### Installation
207+
```bash
208+
$ PRODUCT INSTALL GIT /SOURCE=<PATH WITH KIT>
209+
```
210+
211+
### Remove Product
212+
```bash
213+
$ PRODUCT REMOVE GIT
214+
```
215+
216+
---
217+
218+
### Pre-Requisites for Using VSI Git
219+
Before starting with VSI Git, please complete the following steps:
220+
#### 1. If the CA Certificate is Invalid:
221+
```bash
222+
$ DEFINE GIT_SSL_NO_VERIFY 1
223+
```
224+
#### 2. Set Process Parsing Style to Extended:
225+
```bash
226+
$ SET PROCESS/PARSE_STYLE=EXTENDED
227+
```
228+
#### 3. Set Terminal Inquiry:
229+
```bash
230+
$ SET TERMINAL/INQUIRE
231+
```
232+
233+
### Restrictions
234+
- Repositories and your login directory must be on an **ODS-5** file system.
235+
- If multiple versions of the same file are within the Git directory, it is necessary to purge the directory before using Git commands such as `stash`, `checkout`, `merge`, etc. This helps avoid conflicts or errors during these operations.
236+
- VSI Git currently supports only **Unix-like** paths.
237+
238+
### Performance Notes
239+
240+
For better performance when working with large repositories containing many files, it is recommended to adjust the `core.packedGitWindowSize` configuration value.
241+
Setting this value to **1 MiB** (or **32 MiB**) significantly improves performance.

abspath.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation version 2 of the License.
7+
*/
18
#include "git-compat-util.h"
29
#include "abspath.h"
310
#include "strbuf.h"

add-interactive.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation version 2 of the License.
7+
*/
18
#include "git-compat-util.h"
29
#include "add-interactive.h"
310
#include "color.h"

async_proc_wrapper.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify it
5+
* under the terms of the GNU General Public License as published by the Free
6+
* Software Foundation version 2 of the License.
7+
*
8+
* This program is distributed in the hope that it will be useful, but WITHOUT
9+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
11+
*
12+
* You should have received a copy of the GNU General Public License along with
13+
* this program. If not, see https://www.gnu.org/licenses/
14+
*/
115
#include <stdio.h>
216
#include <stdlib.h>
317
#include <string.h>

async_procs.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify it
5+
* under the terms of the GNU General Public License as published by the Free
6+
* Software Foundation version 2 of the License.
7+
*
8+
* This program is distributed in the hope that it will be useful, but WITHOUT
9+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
11+
*
12+
* You should have received a copy of the GNU General Public License along with
13+
* this program. If not, see https://www.gnu.org/licenses/
14+
*/
115
#ifndef ASYNC_PROCS_H
216
#define ASYNC_PROCS_H
317

bisect.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation version 2 of the License.
7+
*/
18
#include "git-compat-util.h"
29
#include "config.h"
310
#include "commit.h"

builtin/config.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation version 2 of the License.
7+
*/
18
#include "builtin.h"
29
#include "abspath.h"
310
#include "config.h"

builtin/mv.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
* "git mv" builtin command
33
*
44
* Copyright (C) 2006 Johannes Schindelin
5+
* Copyright (C) 2025 VMS Software, Inc.
6+
*
7+
* This program is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU General Public License as published by
9+
* the Free Software Foundation version 2 of the License.
510
*/
611
#define USE_THE_INDEX_VARIABLE
712
#include "builtin.h"

common-main.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/*
2+
* Copyright (C) 2025 VMS Software, Inc.
3+
*
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation version 2 of the License.
7+
*/
18
#include "git-compat-util.h"
29
#include "exec-cmd.h"
310
#include "gettext.h"

0 commit comments

Comments
 (0)