-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathnotes
296 lines (236 loc) · 9.67 KB
/
notes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
20140522;
The files that make up the OpenSim source are located in 3 different
repositories:
* https://github.com/opensim-org/opensim-core: Source code for C++
libraries and command-line applications, and Java and Python wrapping.
* https://github.com/opensim-org/opensim-models: Models (.osim) and related
example files that are included in the OpenSim distribution.
* https://simtk.org/svn/opensim: Source code for the GUI, and facilities to
create an OpenSim distribution in concert with the other two
repositories.
Layout of opensim-core
----------------------
Applications: Applications built on top of the OpenSim API including scale, ik,
id, forward, analyze and corresponding test cases.
OpenSim/doc: setup files for API documentation.
OpenSim/Examples: C++ API example projects.
OpenSim/Wrapping: SWIG files for generating Java and Python wrappers.
OpenSim/<everything else>: The C++ source code used to build the OpenSim
libraries.
Vendors: Source code for third-party libraries.
Layout of SVN OpenSim
---------------------
Gui: Java source code and Netbeans build files for the GUI.
Installer: Files to for making a Windows installer for the GUI.
Vendors: Third-party libraries, like VTK, which is used for visualizing.
History of the organization of the source files
-----------------------------------------------
Prior to June 2014, all of the OpenSim source files were located in a single
SVN repository, at https://simtk.org/svn/opensim. In June 2014, we moved some
of the source files into git repositories at https://github.com/opensim-org.
This conversion was performed using Python scripts located at
https://github.com/opensim-org/opensim2git, which employ the svn2git conversion
tool (https://github.com/nirvdrum/svn2git). The conversion consisted of the
following steps:
1. Convert the entire OpenSim SVN repository to git using svn2git. Call this
GIT repository 'opensim-legacy'.
2. Make a copy of 'opensim-legacy', name it 'opensim-core', and make the
following changes to it:
* Delete from the history any directories with the following names:
importOldModels, Models, Gui, Installer, Documentation, html,
xerces-c*, Specs, vtk_dll, CFSQP, NMBLTK, SimTK, Gui, Gait*, Arm26,
Leg39, si (used for Doxygen documentation; stands for search index).
* Delete from the history any files matching (binary and machine-generated
files):
NSIS.InstallOptions.ini.in
NSIS.template.in
WriteEnvStr.nsh
*_wrap.cxx
*.psd
*.java
*.dll
*.lib
*.dylib
*.so
*.jar
pyOpenSim.py
opensimModel.py
opensim.py
OpenSimJNI_wrap.cxx
*.exe
We removed this files since git repositories should not contain binary or
machine-generated files. We also wanted to minimze the size of the
'opensim-core' repository.
* Delete most historical branches and tags.
3. Make a copy of 'opensim-legacy', extract the 'Models' folder into its own
git repository, and name it 'opensim-models'. The models take up a lot of
disk space, since they contain reference output (huge Storage files). We
felt we could separate this from opensim-core to keep opensim-core as small
as possible.
4. Delete from the SVN repository any files that are not related to the GUI or
to creating a release of the OpenSim application.
The 'opensim-legacy' repository, which is a private GitHub repository which
only members of the opensim-org can view, contains a nearly complete history of
the OpenSim source files, and can be used for reference by the development team
to explore OpenSim's history using git. We felt this was necessary since the
'opensim-core' repository does not comtain a complete history.
The SVN repository used to contain an optimization library CFSQP. We do not
have a license to distribute this code freely. We have deleted this library
from the SVN repository and placed it in a private GitHub repository,
accessibly only to members of the opensim-org organization.
For further details about the conversion, see the files at
https://github.com/opensim-org/opensim2git.
20140423:
after the conversion:
delete files from svn repo
update readme files
list the changes to history we made in opensim-core (deleted files).
* Models are moved to the opensim-models repository
* Gui is removed
* All *.psd, *.java, *.dll, *.lib, *.dylib, *.so, *.jar files are
removed from every commit.
*
update confluence stuff
add page detailing where source code is
CONTRIBUTING info moved to repo
INSTALL info moved to repo
add details about the changes that occurred in the git conversion
(above)
PR's
FindOpenSim.cmake
travis
build a debian installation
fix up find_package(Simbody)
reorganize repository (wrapping, doc, and examples move out).
simbody:
update the version-checking script
update the readme from anything in the old docs.
old installation docs:
txt file
buildfromsource
usermanual
list_of_current_folders_to_gitrm = [
'OpenSim/Utilities/importOldModels',
'Models',
'Installer',
'Documentation',
'Vendors/vtk_dll',
'Vendors/CFSQP',
'Gui',
'OpenSim/doc/extra_html/si',
]
list_of_folders_to_delete = [
'importOldModels',
'Models',
'Installer',
'Documentation',
'html',
'xerces-c*',
'Specs',
'vtk_dll',
'CFSQP',
'NMBLTK',
'SimTK',
'Gui',
'Gait*',
'Arm26',
'Leg39',
'si',
]
list_of_files_to_delete = [
'NSIS.InstallOptions.ini.in',
'NSIS.template.in',
'WriteEnvStr.nsh',
'*_wrap.cxx',
'*.psd',
'*.java',
'*.dll',
'*.lib',
'*.dylib',
'*.so',
'*.jar',
'pyOpenSim.py',
'opensimModel.py',
'opensim.py',
'OpenSimJNI_wrap.cxx',
'*.exe',
]
confluence page on using git
move issues to git issues
update simtk page
20140416:
-use The BFG to remove large files or otherwise prune the history.
-opensim-models has some large files currently.
-opensim-legacy is too large?
-save svn2git logs back to opensim2git repo.
20140408:
-clean up opensim2git; put in opensim-org
-'standalone' must be committed to all extant branches at time of conversion
-opensim legacy: public or not?
-opensimcore: put in readme that the history is broken (at which revision
also):
automate this.
-leave a 3.2 branch in opensim-core; don't make tag?
-account for visualizer branch
-ensure CFSQP is removed.
-make sure git blame works prior to 6665.
-we lose git-blame before 2011.
-revisit making a small number of
-give ayman an example of the future repository layout.
-update scripts that push git repos to github.
-refine what opensim-core installation looks like. this gets complicated, and
affects the documentation.
-simtk libraries and headers should not be copied over.
this affects windows users
only copy over simbody libraries if on windows.
-sdk/(include|doc|APIExamples) could all be moved to the root directory.
-eventually we could move examples, etc into share/.../
-is a big repo okay?
-stop using my altered svn2git; with the --ignore flag.
-what will the name of the Cmake project be? OpenSim? then what's the name of
the GUI project?
-allow push script to push to opensim-org.
20140328:
* subtree split models off of opensim-core
* figure out how to get opensim_core without genfiles issue
* squash commits in opensim-core using rebase
* patch opensim-core
* remove big files from history (run those magical commands again)
1. make a mirror of svn
2. kde svn2git - remove GUI and CFSQP
3.
we are not worried about keeping the history.
which branches do we keep?
update mirror of svn.
1. why does cfsqp go awry?
2. how come starting from a later revision doesn't get all the files? we're not
starting from the state of the repo at that point....
3. get cfsqp repository to compile.
4. OpenSimJNI_wrap.(cxx|h) is not geting matched.
5. try compiling.
6. preserve certain branches.
Using filter-branch to remove CFSQP takes a lot longer than using kde-svn2git
to do it. It exists in every commit; every commit needs to be rewritten?
WARN: SVN reports a "copy from" @ 1053 from /Vendors @ 1052 but no matching
rules found! Ignoring copy, treating as a modification
remove all history before revision 6662.
http://stackoverflow.com/questions/7459209/git-how-to-remove-history-before-a-specific-commit
- make sure that opensim-core is a standalonep roject.
REMOVE historical doxygen stuff.
leave models in subversion.
DO NOT COPY simbody libraries into the opensim installation, unless you're on
windows?
1. build example output reference automatically.
2. make opensim a nice independent project, modify the Trunk so that it depends
on OpenSim.
20140117:
-branch deleting / moving branches to tags
-figure out merge history: edit commit parents to represent if/when branches
were merged back in. (email Ayman).
-make standalone (remove cmake references to Gui folder, etc)
-edit svn Trunk (create a patch) to make GUI find now-separate OpenSim install
-clean up documentation of what opensim2git does, how to get it to run
-continue removing files from the history to make the repository smaller.
-make sure line endings are actually fixed.
- PATTERN ".svn" EXCLUDE can be removed
http://stackoverflow.com/questions/5385148/get-cmake-to-execute-a-target-in-project-before-building-a-library