The main project (or parent project) I use have my application and also couple of sub-projects that is delivered externally. The sub-projects can have the folders, source files (mainly the .h, and I use the libraries from them) changes for each release, i.e. a folder can be renamed, removed similarly header files can be removed, renamed or new header files can be added. Now I create a new sub-project whenever I get a new delivery, so I have to always link the new sub-project to the parent project.
Is it possible to have one sub-project with a check-point, and the new delivery can be checked-in on top of the old check point, but just have the files and folders only based on the new delivery ? By doing this I don't have to create a new sub-projects every time and also the linking.
Provided you have external_LIB1\project.pj
What do you mean with "linking"? Something like this
+ working subproject as Integrity share to external_LIB1_Vx\project.pj or a build/checkpoint of it
(see Subproject->Add Shared)
or "link" to new directory in your build system?
I think you are nearly right, however I'll explain the scenario bit more (also I'm new to integrity so please bear with me).
In the above Main_Project, External_app_V1.0 will have different contents to the External_app_V2.0 (this being the latest delivery of the same sub-project)
Therefore for every new delivery of External_app, there is a new sub_project created (with different names, mainly by using the version number attached to the name).
Ideally I want to use the one sub project External_app - so I don't have to create new sub-project and link them to Main_Project.pj every time.
You can have just one subproject External_app. With each new version, you can either update just the changed files, or you could just drop everything in the External_app subproject and add in the files and folders for the new version. It depends how different the versions are.
I recommend creating a checkpoint with a descriptive label whenever you update the subproject. That way, it's easier to retrieve older versions of External_app if necessary.
In detail for me I would imagine a workflow like following on new app releases:
1.) Checkpoint External_app\project.pj with LABEL like "BACKUP_BEFORE_NEW_VERSION_V2_0"
Just to make sure to have a well defined checkpoint if somebody did changes to the subproject.
2.) Remove working files from subsandbox/folder of External_app\project.pj
3.) copy new sources of external app to folder External_app
4.) Drop members with missing working files
5.) Check in changed members (say no when beeing asked about checkin in unchanged files)
6.) Add new members (e.g by using Sandbox-View Nonmembers)
7.) Checkpoint External_app\project.pj with LABEL like "APP_V2_0"
8.) optional Configure Subpproject to the build number that hast the Label „APP_V2_0“
(eg External_app\project.pj (1.3))
Thus you can see at glance in the Client that you are using a specific Project Revision.
Furthermore nobody who is working with the parent Main\project.pj will be able to modify
subproject External_app\project.pj unless the subproject is configured again to default.
When Main\project.pj gets checkpointed no new (potentially dummy) project revision will be generated