рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рд╣рдореЗрд╢рд╛ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирдВрдмрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдмрд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред
рдЖрдк рдЕрдкрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреИрд╕реЗ рдирдВрдмрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдВ рдФрд░
рдпрд╣рд╛рдВ рд▓рд┐рдЦрд╛
рдЧрдпрд╛ рд╣реИ ред рджреЛрдиреЛрдВ рд▓реЗрдЦреЛрдВ рдиреЗ 'svn info' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд╛рдирд╛, рдФрд░ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд▓реЗрдЦрдХ
SvnAnt рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд
рдХрд░рддрд╛ рд╣реИ , рдФрд░ рджреВрд╕рд░реЗ рд▓реЗрдЦ рдореЗрдВ, рд▓реЗрдЦрдХ 'svn рдЬрд╛рдирдХрд╛рд░реА' рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ 'svn info' рдХрд╛рдо рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдлреА рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
UPD: git рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реА рдЧрдИред
рд╕рдорд╕реНрдпрд╛
рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ 'svn info' рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрд╢реЛрдзрди рдХреЛ рдЬрд╛рд░реА рдХрд░рддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$ svn info Revision: 32
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:
$ svn info ./src/ru/bsrgin/myproject/MyActivity.java Revision: 45 $ svn -r 32 -v log Changed paths: D /some-folder $ svn -r 45 -v log Changed paths: M /src/ru/bsrgin/myproject/MyActivity.java
рджреЛрдиреЛрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдкрддреНрддрд┐-рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╛рдиреА
рд╕рдВрд╢реЛрдзрди рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
: 32 рдкреНрд░рдХрд╛рд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдб рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЖрдк 'svn -R рдЬрд╛рдирдХрд╛рд░реА' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ рдореЗрдВ рдирд╡реАрдирддрдо рд╕рдВрд╢реЛрдзрди рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рд░реНрдп рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдиреБрд░реЛрдз 'svn -r HEAD info' рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИ, рди рдХрд┐ рдХрд╛рд░реНрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ, рдЬреЛ рдЧрд▓рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЦреНрдп рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ - рд╡рд░реНрддрдорд╛рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреАрдврд╝реАред рддрд░реНрдХ BASE, COMMITTED рдФрд░ PREV рднреА рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ - рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ?
рдирд┐рд░реНрдгрдп
рдореИрдВ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ 'svnversion' рдпрд╛рдж рдЖ рдЧрдИред рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
4123:4168 mixed revision working copy 4168M modified working copy 4123S switched working copy 4123P partial working copy, from a sparse checkout 4123:4168MS mixed revision, modified, switched working copy
рдпрд╛рдиреА рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреА рд╡рд░реНрдХрд┐рдВрдЧ рдХреЙрдкреА рдореЗрдВ 'svnversion' рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
$ svnversion 32:46
рдФрд░ рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ:
$ svnversion 32:46M
рджрд░рдЕрд╕рд▓, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдмрд┐рд▓реНрдб рдПрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдерд╛ ...
рдиреАрдЪреЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рддреЛрдбрд╝рдлреЛрдбрд╝ рдпрд╛ рдЧрд┐рдЯ рдХреЗ рдХрд╛рдордХрд╛рдЬреА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВред
рдХрд░реНрдореЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдореЗрдВ
svn-revision.build.xml рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдбрд╛рд▓реЗрдВ:
<project default="svn-revision"> <target name="svn-revision"> <exec executable="svnversion" output="svnversion.output"> <arg line="-n"/> </exec> <loadresource property="svnversion.Revision"> <file file="svnversion.output"/> </loadresource> <echo>Revision: ${svnversion.Revision}</echo> <replaceregexp file="AndroidManifest.xml" match='android:versionName="([^".]+\.[^".]+)(\.[^"]*)?"' replace='android:versionName="\1.${svnversion.Revision}"' /> <delete file="svnversion.output"/> </target> </project>
рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐
AndroidManifest.xml svn-revision.build.xml рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдкрдВрдХреНрддрд┐ 22 рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдпрд╣ рднреА рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг
1.2 рдпрд╛
1.2.3 рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдкрдВрдХреНрддрд┐ 23 рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред
рдЕрдЧрд▓рд╛,
.externalToolBuilders / AddSvnRevisionToVersion.launch рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВред
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType"> <booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/> <booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> <booleanAttribute key="org.eclipse.debug.core.ATTR_REFRESH_RECURSIVE" value="false"/> <stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> <listEntry value="${project_loc}/svn-revision.build.xml"/> </listAttribute> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> <listEntry value="1"/> </listAttribute> <booleanAttribute key="org.eclipse.debug.core.capture_output" value="false"/> <booleanAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_OUTPUT_ON" value="false"/> <booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="ANDROID-APP"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${project_loc}/svn-revision.build.xml"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/> <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> </launchConfiguration>
ANDROID-APP рдХреЗ рдмрдЬрд╛рдп
, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рдбрд╛рд▓реЗрдВ (
.project рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
<рдирд╛рдо> рдЯреИрдЧ рдХрд╛ рдореВрд▓реНрдп рджреЗрдЦреЗрдВ)ред рдЕрдЧрд▓рд╛,
.project рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ -
<buildCommand> рдЯреИрдЧ рдХреЗ рдмрд╛рдж
рд╣рдо рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<buildCommand> <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> <triggers>full,incremental,</triggers> <arguments> <dictionary> <key>LaunchConfigHandle</key> <value><project>/.externalToolBuilders/AddSvnRevisionToVersion.launch</value> </dictionary> </arguments> </buildCommand>
рдирддреАрдЬрддрди, рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдЬреЛ
AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рднреА рдмрд┐рд▓реНрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрдм рдлрд╝рд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдЬрдм рднреА рд░рд┐рд▓реАрдЬрд╝ рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдЧреАред рдпрджрд┐ рд░рд┐рд▓реАрдЬрд╝ рдкреИрдХреЗрдЬ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ рдпрд╛ рдЖрдк рдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ
svn-revision.build.xml рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
Git
SCV рдЧрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ
svit-revision.build.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ
git-revision.build.xml рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред
<project default="git-revision"> <target name="git-revision"> <exec executable="git" output="gitdescribe.output"> <arg line="describe --always --dirty=+ --abbrev=5"/> </exec> <loadresource property="git.Revision"> <file file="gitdescribe.output"/> </loadresource> <echo>Revision: ${git.Revision}</echo> <replaceregexp file="AndroidManifest.xml" match='android:versionName="([^".]+\.[^".]+)(\.[^"]*)?"' replace='android:versionName="\1.${git.Revision}"' /> <delete file="gitdescribe.output"/> </target> </project>
рддрджрдиреБрд╕рд╛рд░,
AddSvnRevisionToVersion.launch рдФрд░
.project рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред
рд╡рд░реНрдЬрдирдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдЬрдирдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЕрдм, рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
public static getApplicationVersion() { try { return getInstance().getApplicationContext().getPackageManager() .getPackageInfo(getPackageName(), 0).versionName; } catch (NameNotFoundException e) { return "App not installed!"; } }
рдирддреАрдЬрддрди, рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдореБрдЭреЗ
1.0.32: 46M (рддреЛрдбрд╝рдлреЛрдбрд╝) рдФрд░
1.0.58c57 + (
gb ) рд▓рд╛рдЗрди
рдорд┐рд▓реА ред